我想解析项目中的当前c ++文件并列出其中的所有方法/函数,然后生成函数调用和调用者树。 F.G.你可以参考doxygen如何生成调用树。
我已经检查过gccxml但它没有列出从另一个函数调用的函数。
请建议我使用一些轻量级工具(开源)。
谢谢!
答案 0 :(得分:6)
静态调用树不一定是运行时调用树。回调和虚拟功能使水变得混乱。所以静态分析只能给你一部分答案。
我能够获得可靠调用树的唯一方法是在已编译的可执行文件上运行gprof。可以将输出按摩到非常准确的调用树中。
答案 1 :(得分:4)
答案 2 :(得分:2)
你提到Doxygen。为什么不使用它?
答案 3 :(得分:0)
我可能误解了,但是视觉工作室有类似的东西。 右键单击一个功能,然后选择“呼叫浏览器”。
答案 4 :(得分:0)
不可能为依赖于异步事件接收的应用程序提供完整的调用树分析。这是我们测试的方式。即使在最简单的情况下,应用程序是完全确定的,这可能是一个相对艰巨的任务,我认为提供边际价值。那你将如何分析结果呢?到了什么效果?