6

我想解析项目中的当前 c++ 文件并列出其中的所有方法/函数,然后生成函数调用和调用者树。Fg 你可以参考 doxygen 如何生成调用树。

我检查了 gccxml 但它没有列出从另一个函数调用的函数。

请向我推荐一些我可以使用的轻量级工具(开源)。

谢谢!

4

5 回答 5

6

静态调用树不一定是运行时调用树。回调和虚函数使水变得浑浊。所以静态分析只能给你部分答案。

我能够获得可靠调用树的唯一方法是在已编译的可执行文件上运行 gprof。输出可以被按摩成一个非常准确的调用树。

于 2009-11-13T15:37:29.540 回答
4

目前,gccxml 基本上忽略了函数体(包括对其他函数的调用)。此处对当前可用的 C++ 解析选项进行了很好的概述——不一定是好消息的承载者,但推荐阅读。

于 2009-11-13T06:29:42.093 回答
2

你提到了 Doxygen。为什么不使用它?

于 2009-11-13T13:58:17.877 回答
0

我可能误解了,但视觉工作室有类似的东西。右键单击一个函数并选择调用浏览器。

于 2010-10-04T19:49:08.380 回答
0

为依赖于异步事件接收的应用程序提供完整的调用树分析是不可能的。这是我们进行测试的方式。即使在应用程序完全确定性的最简单情况下,这也可能是一项相对艰巨的任务,我认为提供边际价值。那么你会如何分析结果呢?起到什么作用?

于 2012-11-30T02:55:00.417 回答