How to track child process using strace? How to track child process using strace? multithreading multithreading

How to track child process using strace?


strace -f to trace child process that's fork()ed.


I can't see an easy way:

You could use the -ff option with -o filename to produce multiple files (one per pid).

eg:

strace -o process_dump -ff ./executablegrep clone process_dump*

that would help you see which parent created what. Maybe that would help you - at least then you could search backwards.


There is a perl script called strace-graph. Here is a version from github. It is packaged with crosstool-ng versions of compilers. It works for me even used cross platform.

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%

The output can be used to help navigate the main trace log.