C ++:依赖性跟踪工具(逆向工程)

我的问题与以下类似:

反向工程C ++的工具(即查看C ++类)

而不是寻找类图,我更感兴趣的是找到调用链和依赖关系,并生成漂亮的图。

有这样的工具吗? 我知道cscopectags可以做一些我想做的事情,但是采用非常低级别的交互方式(一次一个查询)。 我想要一些更自动化的东西,例如给定一个API,找到它的所有子例程调用路径,直到它到达树叶并显示给我。

有没有一个工具呢? 是否有可能在二进制级别执行? 像库中的逆向工程函数依赖关系(.a,.so,.dll作为输入)?

编辑:

我更喜欢静态分析工具,因为我希望它可以用于库和模块代码。

另外我更喜欢跨平台的解决方案。 我主要在Mac上,但Linux或Windows的工具也很有趣。

UPDATE

在研究了这些建议之后,我决定Doxygen就是我想要的。 它给出了调用者和被调用者图,并使用静态分析,跨平台和免费的。

感谢所有其他建议。 他们睁大了我的眼睛。


Doxygen可以显示来电者和被调用者的树木:
Doxygen的

编辑1:
示例Doxygen调用树


CppDepend看起来非常棒。

在这里输入图像描述

http://www.cppdepend.com/


您可以使用DEPENDS应用程序来检测Windows中的大多数C C ++和C#库。
但仍然不会给你打电话链...
这里是链接DEPENDS

链接地址: http://www.djcxy.com/p/37695.html

上一篇: C++: Dependency tracking tool (reverse engineering)

下一篇: Is there an interactive graphing library for python