Bonjour,
Je découvre l'outil de "profilage" gprof.
Je tente de l'utiliser mais je n'y parviens pas lorsque je
dois "linker" avec une bibliothèque dynamique.
Mon problème sur un exemple trivial.
mon_header.h:
mon_header.cpp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 void passe_du_temps1(); void passe_du_temps2(); void passe_du_temps3();
idem pour les deux autres
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #include "mon_header.h" void passe_du_temps1() { std::cout<<"Dans passe du temps 1\n"; int toto; for (size_t i=0; i<100000000; i++) toto = i+2; }
main.cpp:
si je compile sans bibliothèque ca marche,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #include "my_header.h" int main() { passe_du_temps1(); for (size_t i=0; i<5; i++) passe_du_temps2(); passe_du_temps3(); }
je vois les appels des methodes en sortie de
gprof:
g++ -c mon_header.cpp main.cpp -pg
g++ mon_header.o main.o -o main -pg
si je passe par une lib. dyn., ca marche plus,
je ne vois plus les appels des methodes:
g++ -c mon_header.cpp main.cpp -pg
g++ -shared mon_header.o -o ma_lib.so -pg
g++ my_lib.so main.o -o main -pg
Je ne comprends pas les quelques lignes de la doc ...
Comment fait-on ?
Merci
Partager