strace funktioniert auch für Threads. Verwenden Sie strace -f
, um alle Threads zu strace.
Um nur einen bestimmten Thread zu streamen, müssen Sie zuerst seine tid (Thread-ID) finden. Threads haben Thread-IDs, die wirklich eine PID (Prozess-ID) sind.
Sobald Sie die PID des Threads kennen, verwenden Sie strace -p the_pid
, um diesen Thread zu straffen.
Die PIDs aller Threads in einem Prozess können in /proc/<pid>/task/
gefunden werden, oder die aktuelle Thread-ID kann mit dem Aufruf gettid()
C gelernt werden.
eigentlich strace ist nicht so gut wie perf.
verwenden Perf-Tool, können Sie weitere Informationen erhalten.
zum Beispiel, wenn einige Ihrer Threads hängen, und Sie herausfinden möchten, welche Funktionen Anrufe, die hängen, benutze strace -p pid-id gibt begrenzte Informationen zurück, aber perf top, oder perf-t tid gibt mehr zurück
Tags und Links c multithreading linux