gprof profiling of multi-threaded Cygwin programs
Mark Geisert
mark@maxrnd.com
Thu Feb 18 20:26:00 GMT 2016
On Thu, 18 Feb 2016, Jon Turney wrote:
> On 18/02/2016 11:29, Mark Geisert wrote:
>>> A brief search tells me that apparently glibc supports the
>>> (undocumented) GMON_OUT_PREFIX env var which enables a similar behaviour.
>>
>> Ah, I did not know about that. It would be easy to implement.
>>
>> So I'm leaning towards choosing file name as GMON_OUT_PREFIX.exename.pid
>> with GMON_OUT_PREFIX defaulting to "gmon.out" if unspecified.
>
> I think if you are going to implement GMON_OUT_PREFIX, you should make the
> behaviour the same as glibc.
>
>> Do you think the expanded name should be used in all cases, or only when
>> there's a gmon.out already present?
>
> I don't think you should be checking for an existing gmon.out file. In the
> simple case where the program doesn't fork, it's expected that gmon.out will
> get overwritten.
OK, so the file name would be "gmon.out" if GMON_OUT_PREFIX is not
specified, and $GMON_OUT_PREFIX.$pid if it is. And don't check for
existing files in either case.
I was also worried about a profiled program fork/exec'ing a different
profiled program and so I considered having $exename be part of the
file name. But I now think following the undocumented glibc behavior is
better in the long run. One can arrange a different GMON_OUT_PREFIX for
the execee if that's truly necessary.
Thanks; I appreciate the feedback.
..mark
More information about the Cygwin-patches
mailing list