Open GoogleCodeExporter opened 9 years ago
There's --debug option, but I'm not sure it will give you explanation why it's
not working.
BTW, when trying 2.2 are you sure you've used pprof from 2.2 ? I'm asking
because 2.2 has some fix for pprof about some addr2line problem.
Original comment by alkondratenko
on 18 May 2014 at 6:19
Thanks for the reply.
Yes, I used 2.2's pprof. I explicitly specified like
/home/<myname>/local/bin/pprof ... (I compiled/installed gperftools into
~/local)
Also, I confirmed via ldd that I surely linked to 2.2's libprofiler.so.
Where should I specify the --debug option? It's not command line arg for the
application, or is it? Does it assume LD_PRELOAD?
Original comment by hideaki.kimura@gmail.com
on 18 May 2014 at 7:47
--debug is pprof option.
Original comment by alkondratenko
on 18 May 2014 at 7:47
I tried --debug on pprof, but it doesn't say anything about symbols.
I think the issue happens before pprof when gperftools retrieves symbols from
the shared library.
"00007f..." doesn't look like a logical function address, so it doesn't match
anything no matter how pprof tries. I wonder if the fix for base address
adjustment (Issue 586) is working correctly. Is there any debug option for
ProfilerStart/ProfilerStop, not pprof?
Original comment by hideaki.kimura@gmail.com
on 18 May 2014 at 10:57
libprofiler.so is not mapping addresses to functions. It's just writing
addresses which pprof then turns them into functions
Original comment by alkondratenko
on 18 May 2014 at 11:02
Oh, so pprof retrieves the function name from shared libraries?
Or, does pprof assumes that symbols of shared libraries are also included in
the executable (which is doable, but a bit tedious)?
Well, I guess it doesn't matter. I didn't get the .so function names resolved
even with:
pprof --pdf <.so file> <profile> > a.pdf
One interesting thing is that I didn't have this issue when the .so was small.
The size of .so has grown and after some point of time I started hitting this
issue.
Also, seemingly a single function was profiled with several different addresses
(all 00007f... with very close addresses). That sounds like PIE-related issue
although I specify fno-pic everywhere.
Any ideas?
Original comment by hideaki.kimura@gmail.com
on 19 May 2014 at 4:35
Some new information on this issue.
Seems like this issue is specific to Fedora 20. I don't get this issue on
Fedora 19. That means either something in the newer linux kernel (3.9 -> 3.11)
or newer glibc (2.17 -> 2.18). It doesn't seem like a gcc version issue as it
works fine on Fedora 19 with the exact same version of gcc.
I'd appreciate giving it a try on Fedora 20 environment.
Original comment by hideaki.kimura@gmail.com
on 8 Jun 2014 at 2:20
I'll need some large .so library for that. Currently I don't have time to deal
with that issue. It might be something with particular version of binutils. It
would be great if you could investigate this issue yourself.
For example, have you tried older versions of gperftools (2.1 or 2.0) just in
case ?
Original comment by alkondratenko
on 28 Jun 2014 at 8:16
Original issue reported on code.google.com by
hideaki.kimura@gmail.com
on 15 May 2014 at 6:28Attachments: