call graph

Intr-un post anterior am scris despre egypt. Dezavantajul lui este ca nu poate face un call graph decat dintr-un fisier C. In cazul aplicatiei mele vreau sa vad graficul complet al apelurilor, adica si cum se apeleaza functii din fisiere incluse. Practic de la main pana la cea mai de jos apelata functie.

Exista gprof (GNU profiler), un tool interesant. Inca nu il stapanesc calumea dar el poate genera un asemenea graf. Pentru a putea folosi gprof trebuie urmate instructiunile din linkul de mai sus. Pe scurt:
1. trebuie compilata aplicatia cu flagul -pg
2. apoi rulata aplicatia (un fisier gmon.out este scris pe disc la iesirea din aplicatie)
3. apoi trebuie apelat gprof
4. pentru a reprezenta grafic graful apelurilor este bine de folosit un script de Python numit gprof2dot.py.

Astea doua unelte te pot ajuta sa intelegi mai bine codul pe care il ai de folosit. Cel putin mie imi lasa impresia ca ma ajuta. :)

Leave a Reply