【发布时间】:2012-07-25 02:18:54
【问题描述】:
我正在编写一个工具,我需要为一些 C 项目生成调用图。 我能够使用 clang 生成一个文件的调用图,但我无法找到如何在包含数十个头文件和源文件的整个项目中生成调用图。
任何可以将调用图生成到可以解析的文件的工具都可以。一个可用的库会更好。
【问题讨论】:
-
通过指向函数的指针间接调用可能会使这成为一项艰巨的任务。对于其他调用,创建汇编代码和处理将是使用自写脚本实现此目的的一种方式。
-
你已经有了一个 doxygen 标签 - 我相信它可以在 XML 中转储调用图......你知道吗?如果是这样,你能解释一下它有什么问题吗?
-
@MvG 这看起来是个好主意
-
@Tony 是的,我知道它可以在 xml 中生成它,但我想知道是否有 doxygen 提供的库,我可以使用它来自动化这个过程,而无需用户打开 doxygen 并生成自己归档。
-
还有一个想法:
ld --gc-sections一定也在做某种调用图分析。不确定您是否可以对此有所了解,但可能有办法。可能也不会真正处理间接调用,但它可能能够决定某些代码何时获取函数的地址,以便稍后调用它。
标签: c parsing clang doxygen call-graph