Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

c++: generate function call tree

I want to parse current c++ files in a project and list out all the methods/functions in it and then generate the function call and caller trees. F.g. you can refer how doxygen generates the call tree.

I have checked gccxml but it doesn't list the functions called from another function.

Please suggest me some lightweight tools (open source) which I can use it.

thanks!

like image 370
Java Spring Coder Avatar asked Nov 13 '09 06:11

Java Spring Coder


2 Answers

The static call tree isn't necessarily the runtime call tree. Callbacks and virtual functions muddy the water. So static analysis can only give you part of the answer.

The only way I've ever been able to get a reliable call tree was to run gprof on the compiled executable. The output can be massaged into a very accurate call tree.

like image 55
deft_code Avatar answered Sep 25 '22 17:09

deft_code


gccxml, currently, essentially ignores function bodies (including calls to other functions). A good overview of C++ parsing options currently available is here -- not necessarily a bearer of good news, but recommended reading.

like image 38
Alex Martelli Avatar answered Sep 23 '22 17:09

Alex Martelli