gcov support entails an initialization function named "__GLOBAL__I_0_noop". GCC omits function-begin stab for this function.
Here is the commandline: [morris:/Volumes/sandbox/stuart] hasting2% \/Volumes/sandbox/stuart/gcc.fsf.obj/gcc/xgcc -B \/Volumes/sandbox/stuart/gcc.fsf.obj/gcc -g gcov.c -fprofile-arcs \ -ftest-coverage -S Given the .s file from the above, here is a check of the output: [morris:/Volumes/sandbox/stuart] hasting2% egrep 'noop|main' gcov.s .globl _noop _noop: .stabs "noop:F(0,1)=(0,1)",36,0,7,_noop .stabs "",36,0,0,Lscope0-_noop .globl _main _main: bl _noop .stabs "main:F(0,2)=r(0,2);-2147483648;2147483647;",36,0,11,_main .stabn 192,0,0,_main .stabs "",36,0,0,Lscope1-_main __GLOBAL__I_0_noop: .stabs "",36,0,0,Lscope2-__GLOBAL__I_0_noop .long __GLOBAL__I_0_noop .long __GLOBAL__I_0_noop [morris:/Volumes/sandbox/stuart] hasting2% The 'stabs "",36' record seems to signify the end-of-the __GLOBAL__I_0_noop function. The matching start-function record is missing; compare with the noop and main functions. The testcase is from the GCC testsuite: gcc/testsuite/gcc.misc-tests/gcov-1.c gcov.c Since it's short, here is the testcase: /* Test Gcov basics. */ /* { dg-options "-fprofile-arcs -ftest-coverage" } */ /* { dg-do run { target native } } */ void noop () { } int main () { int i; for (i = 0; i < 10; i++) /* count(11) */ noop (); /* count(10) */ return 0; /* count(1) */ } /* { dg-final { run-gcov gcov-1.c } } */ -- Summary: omitted stab for gcov initialization function Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: debug AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: stuart at apple dot com CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: powerpc-apple-darwin GCC host triplet: powerpc-apple-darwin GCC target triplet: powerpc-apple-darwin http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19521