This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Profiling & nested functions


Hi,

Is GCC + gprof supposed to handle nested functions?
It looks like they are not properly reported.
The original problem was on Ada code with nested
functions. This is with HEAD and GNU gprof 2.15.91.0.2
on a SuSE 9.2 system.

Thanks in advance,

Laurent

$ cat cn.c
#define N 10000000
static int sum=0;
void p1(void) {
  int i;
  for(i=1;i<=N;i++) sum+=(i+1)/i;
}
void p2(void) {
  int f2(int x) {
    return x;
  }
  int i;
  for(i=1;i<=2*N;i++) sum+=f2(i+1)/i;
}
void p3(void) {
  int i;
  for(i=1;i<=3*N;i++) sum+=(i+1)/i;
}

int main(void) {
  p1();
  p2();
  p3();
  return 0;
}
$ gcc -pg -g cn.c 
$ ./a.out
$ gprof ./a.out 
[...]
Flat profile:
  %   cumulative   self              self     total           
 time   seconds   seconds    calls   s/call   s/call  name    
 49.49      8.70     8.70        1     8.70     8.70  p3
 34.13     14.70     6.00        1     6.00     6.00  p2
 16.38     17.58     2.88        1     2.88     2.88  p1
[...]
index % time    self  children    called     name
                                                 <spontaneous>
[1]    100.0    0.00   17.58                 main [1]
                8.70    0.00       1/1           p3 [2]
                6.00    0.00       1/1           p2 [3]
                2.88    0.00       1/1           p1 [4]
-----------------------------------------------
                8.70    0.00       1/1           main [1]
[2]     49.5    8.70    0.00       1         p3 [2]
-----------------------------------------------
                             20000000             p2 [3]
                6.00    0.00       1/1           main [1]
[3]     34.1    6.00    0.00       1+20000000 p2 [3]
                             20000000             p2 [3]
-----------------------------------------------
                2.88    0.00       1/1           main [1]
[4]     16.4    2.88    0.00       1         p1 [4]
-----------------------------------------------



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]