Wie Kind-Prozess verfolgen strace mit?
-
27-09-2019 - |
Frage
ich gebrauchte strace
ein Verfahren kurz zu befestigen. Das Verfahren geschaffen 90 Fäden. Als ich den säumigen Thread gefunden, hatte ich für den übergeordneten Thread tediously suchen, dann der Großeltern Faden, und so weiter die ganzen Weg zu dem Wurzelprozess.
Gibt es einen Trick oder ein Werkzeug, um schnell herauszufinden, welche Thread eine andere geschaffen? Oder noch besser, drucken Sie den Baum der Faden Kreationen wie pstree
?
Lösung
strace -f
, um Spuren Kind Prozess, der fork()
ed wird.
Andere Tipps
Es ist ein Perl-Skript namens strace-graph
. Hier ist eine Version von Github . Es ist mit cross-ng Versionen von Compilern verpackt. Es funktioniert für mich selbst verwendet Cross-Plattform.
ARM Linux-Box.
$ ./strace -f -q -s 100 -o app.trc -p 449
$ tftp -pr app.trc 172.0.0.133
X86_64 Linux-Box.
$ ./strace-graph /srv/tftp/app.trc
(anon)
+-- touch /tmp/ppp.sleep
+-- killall -HUP pppd
+-- amixer set Speaker 70%
+-- amixer set Speaker 70%
+-- amixer set Speaker 70%
+-- amixer set Speaker 70%
+-- amixer set Speaker 50%
+-- amixer set Speaker 70%
`-- amixer set Speaker 50%
Der Ausgang kann das Haupt Trace-Protokoll als Hilfe zur Navigation verwendet werden.
Ich kann nicht eine einfache Möglichkeit sehen:
Sie könnten die -ff
Option mit -o filename
verwenden, um mehrere Dateien (eine pro pid) zu produzieren.
Beispiel:
strace -o process_dump -ff ./executable
grep clone process_dump*
das würde helfen Sie sehen, welche Eltern, was erstellt. Vielleicht haben Sie das helfen würde -. Zumindest dann könnten Sie suchen nach hinten