[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

gcc-6 e gprof, mi son perso qualcosa?



Questa mattina volevo fare alcune verifiche con gprof su un programma, ma
non riuscivo ad ottenere alcun risultato.

Finché mi sono accorto che il problema sembrava essere gcc-6.

Mi succede quanto segue:


$ cat fibolento.c
int main (int argc, char *argv[]) {
  if (argc < 2) return 1;
  return main (argc - 1, argv) + main (argc - 2, argv);
}
$ gcc-6 -pg fibolento.c -o fl
$ ./fl 1 1 1 1 1 1 1 1
$ echo $?
55
$ gprof -b ./fl
Flat profile:

Each sample counts as 0.01 seconds.
 no time accumulated

  %   cumulative   self              self     total
 time   seconds   seconds    calls  Ts/call  Ts/call  name

			Call graph

granularity: each sample hit covers 2 byte(s) no time propagated

index % time    self  children    called     name

Index by function name

$ gcc-5 -pg fibolento.c -o fl
$ ./fl 1 1 1 1 1 1 1 1
$ echo $?
55
$ gprof -b ./fl
Flat profile:

Each sample counts as 0.01 seconds.
 no time accumulated

  %   cumulative   self              self     total
 time   seconds   seconds    calls  Ts/call  Ts/call  name

			Call graph

granularity: each sample hit covers 2 byte(s) no time propagated

index % time    self  children    called     name
                                 108             main [6]
[6]      0.0    0.00    0.00       0+108     main [6]
                                 108             main [6]
-----------------------------------------------

Index by function name

lasciando perdere eventuali osservazioni sul fatto che il programmino di
tre righe usa un metodo assai sciocco per calcolare i numeri di
fibonacci...
Qualcuno mi sa dire perché se compilo con gcc-5 poi gprof mi fornisce
delle informazioni, mentre se compilo con gcc-6 non mi dice nulla? Mi sono
perso qualche cambiamento di sintassi nella "nuova" versione di gcc?

Grazie,
m

-- 
http://bodrato.it/papers/


Reply to: