Immer stacktrace von allen threads, ohne Befestigung, GDB
Gibt es eine Möglichkeit zu drucken stacktrace von allen threads, ohne Befestigung, GDB?
Oder gibt es einen Befehl den ich verwenden kann, als gdb batch-Modus zu drucken stacktrace von allen threads?
- Haben die Antworten für Sie arbeiten? Sie waren in der Lage, um die stack-traces?
- ja. fork0 Lösung funktioniert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein
thread apply all
Befehl in GDB:Leider GDB scheint nicht Lesen zu können, die Befehle aus einem Rohr, so führen Sie die Befehle in die batch-Modus, wird eine temporäre Datei verwendet werden muss:
tmp
- Datei?pstack?
Verwendung:
Aus der man-page:
thread apply all
im gdb. Also diese Antwort ist im Grunde das gleiche wie fork0 Antwort.elfutils unter anderen Dienstprogrammen gehören
eu-stack
:Es ist schneller als gdb oder pstack, das ist nur ein shell-Skript-wrapper um den gdb. Drucken stack-traces laufen
eu-stack
wie folgt:Ich habe mit diesem:
Das folgende Skript funktioniert bei mir unter linux
Bitte beachten Sie, dass es zuerst findet sich das Verzeichnis der ausführbaren Datei und wechselt in das Verzeichnis (weil ausführbare Datei haben shared libraries mit relativen Pfad mittels -Wl,-rpath,$dir angegeben, während die Verknüpfung, und wenn Sie möchten, gdb finden Sie die Symbole für diese shared-libraries für den stack-trace).
Es wird auch davon ausgegangen, dass der gdb auf dem system vorhanden ist.
Als in linux Alle threads sind im wesentlichen geringes Gewicht-Prozesse , Sie erhalten individuelle LWP PIDs. sichern Sie den status dieser mithilfe einer
ps
odertop
script oderecho
ing diew
im/proc/sysrq-trigger
. Dies gibt Ihnen dieI/O
Staat die Fäden in der/var/log/messages
.Dies wird nicht geben Ihnen den kompletten stack-trace, wenn . aber es ist ein guter Weg, um das Debuggen der thread Staaten auf regelmäßigen Abständen.
können Sie auch erkunden, was die aktuelle scheduler-Zustand durch einen Blick in
/proc/sched_debug
zu sehen, die Aufgaben sind immer geplant und so weiter .