strace -f
para rastrear el proceso secundario que es fork()
ed.
Hay un script de perl llamado strace-graph
. Aquí hay una versión de github. Está empaquetado con crosstool-ng versiones de compiladores. A mí me funciona incluso cuando se usa multiplataforma.
Caja ARM Linux.
$ ./strace -f -q -s 100 -o app.trc -p 449
$ tftp -pr app.trc 172.0.0.133
X86_64 Caja Linux.
$ ./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%
El resultado se puede utilizar para ayudar a navegar por el registro de seguimiento principal.
No puedo ver una manera fácil:
Podrías usar el -ff
opción con -o filename
para producir varios archivos (uno por pid).
por ejemplo:
strace -o process_dump -ff ./executable
grep clone process_dump*
eso te ayudaría a ver qué padre creó qué. Tal vez eso te ayudaría, al menos entonces podrías buscar hacia atrás.