This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
sprof does not work with static functions
- From: "Arvind Ayyangar" <arvind dot ayyangar at gmail dot com>
- To: libc-alpha at sourceware dot org
- Date: Tue, 17 Jul 2007 18:57:32 +0530
- Subject: sprof does not work with static functions
hi all,
Issues with sprof seems to creep in all the time but there
seems to be no helpful discussion on the web.
I would expect sprof to give me full information of the
functions it shows in the flat profile.
I have a small library which has three functions foo() , temp() and
fun(). Function foo calls temp() and fun() which is a static function.
When I profile the library, I get partial information of the static
function viz fun. The static functions dont seems to appear in the
call graph and the call count is always displayed as zero.
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls us/call us/call name
50.00 0.17 0.17 1170000.00 temp
50.00 0.34 0.17 0 0.00 fun
0.00 0.34 0.00 1 0.00 foo
index % time self children called name
[0] 0.0 0.00 0.00 0 mcount@@GLIBC_2.0 [0]
0.00 0.00 1/1 foo [3]
0.17 0.00 1/1 temp [2]
-----------------------------------------------
0.00 0.00 1/1 <UNKNOWN>
[2] 50.0 0.17 0.00 1 temp [2]
-----------------------------------------------
0.00 0.00 1/1 <UNKNOWN>
[3] 0.0 0.00 0.00 1 foo [3]
-----------------------------------------------
I debugged to see if the static functions were calling mcount and they did.
Does glibc/ sprof handle static functions in a dif way? Is there any
workaround?
--
Arvind