gprof, threads and forks

M. Edward Borasky (znmeb@aracnet.com)
Wed, 5 Sep 2001 20:04:00 -0700


It's rare that I cross-post to this many lists, but

1. I blew a week trying to track this little monster down, and
2. It isn't at all clear to me where the appropriate fixes and documentation
changes need to be applied.

So here goes:

If you have an executable compiled with *gcc* using the "-pg" option, it is
supposed to generate a "gmon.out" file, which you can later process with the
*binutils* utility "gprof" to produce a profile. All this magic works just
dandy for a single threaded executable, but apparently child threads and
child processes created with "fork" don't get their execution time counted.
See the following links for the gory details:

http://sources.redhat.com/ml/bug-binutils/2001-q3/msg00090.html

http://uwsg.iu.edu/hypermail/linux/kernel/0101.3/1516.html

The second link implies that it's possible to fix this at the *kernel*
level. So my question to all of you is, "what's the best way to get this
fixed?" I need to profile a multi-threaded executable and personally don't
care about the "fork" case, but I'm sure there are others who would care
about forks and not threads.

--
M. Edward (Ed) Borasky, Chief Scientist, Borasky Research
http://www.borasky-research.net  http://www.aracnet.com/~znmeb
mailto:znmeb@borasky-research.com  mailto:znmeb@aracnet.com

Stand-Up Comedy: Because Man Does Not Live By Dread Alone

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/