开发者

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开发者_JS百科 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!


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.


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.


You mention Doxygen. Why not use that?


I probably misunderstood , but visual studio have something similar. Right Click a function and select Call Browser.


It's impossible to provide a full call tree analysis for an application that's dependent on asynchronous event reception. This is way we have test. Even in the simplest cases where the application is fully deterministic this could be a relatively daunting task and I would argue provide marginal value. Then how would you analyze the results? To what effect?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜