strace -f
per tracciare il processo figlio che è fork()
ed.
C'è uno script perl chiamato strace-graph
. Ecco una versione da github. È impacchettato con crosstool-ng versioni dei compilatori. Per me funziona anche se è multipiattaforma.
Scatola ARM Linux.
$ ./strace -f -q -s 100 -o app.trc -p 449
$ tftp -pr app.trc 172.0.0.133
Scatola Linux X86_64.
$ ./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%
L'output può essere utilizzato per facilitare la navigazione nel registro di traccia principale.
Non riesco a vedere un modo semplice:
Potresti usare il -ff
opzione con -o filename
per produrre più file (uno per pid).
es:
strace -o process_dump -ff ./executable
grep clone process_dump*
questo ti aiuterebbe a vedere quale genitore ha creato cosa. Forse questo ti aiuterebbe, almeno allora potresti cercare all'indietro.