From: Denys V. <dvl...@re...> - 2012-03-09 12:52:58
|
On 03/09/2012 12:13 AM, George Spelvin wrote: >>> 2) A simple way to trace all threads of a process. strace doesn't really >>> take process IDs but thread IDs, so if a process has multiple threads, >>> only the primary process gets traced. I'd like an easy way to say >>> "what the heck is firefox doing?" and get all the threads. >>> (Once again, this is working around a limitation of pgrep.) > >> The code to do so is there (-p PID -f would do what you want even today - >> but it will also follow forks which you didn't ask for). > > Oh! Actually, that's mostly what I'm interested in; I just didn't > know that worked! > > I thought I had tried it once and had it not work, but either my memory > is faulty or strace improved, bexause you're absolutely right! > >> We only need an option to indicate this. -T and -t are taken. -P is taken too. >> We are running out of alphabet! :) > > Given the above, what might be more useful is a "drop thread on exec" option, > so I'm tracing a single multi-threaded program, and not what it execs. > That might factor into your choice of letters. execve takes down entire multi-threaded program, thus what you propose does not make sense: after execve in any thread, your multi-threaded program won't be there anymore. Did you mean "track thread creation (clone), but not process creation ([v]fork that is)"? -- vda |