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: