strace -f
um den untergeordneten Prozess zu verfolgen, der fork()
ist Aufl.
Es gibt ein Perl-Skript namens strace-graph
. Hier ist eine Version von github. Es ist mit crosstool-ng gepackt Versionen von Compilern. Es funktioniert bei mir sogar plattformübergreifend.
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%
Die Ausgabe kann verwendet werden, um beim Navigieren im Hauptablaufverfolgungsprotokoll zu helfen.
Ich sehe keinen einfachen Weg:
Sie könnten den -ff
verwenden Option mit -o filename
um mehrere Dateien zu erzeugen (eine pro PID).
zB:
strace -o process_dump -ff ./executable
grep clone process_dump*
das würde Ihnen helfen zu sehen, welcher Elternteil was erstellt hat. Vielleicht würde dir das helfen - dann könntest du wenigstens rückwärts suchen.