C ++:依赖性跟踪工具(逆向工程)
我的问题与以下类似:
反向工程C ++的工具(即查看C ++类)
而不是寻找类图,我更感兴趣的是找到调用链和依赖关系,并生成漂亮的图。
有这样的工具吗? 我知道cscope和ctags可以做一些我想做的事情,但是采用非常低级别的交互方式(一次一个查询)。 我想要一些更自动化的东西,例如给定一个API,找到它的所有子例程调用路径,直到它到达树叶并显示给我。
有没有一个工具呢? 是否有可能在二进制级别执行? 像库中的逆向工程函数依赖关系(.a,.so,.dll作为输入)?
编辑:
我更喜欢静态分析工具,因为我希望它可以用于库和模块代码。
另外我更喜欢跨平台的解决方案。 我主要在Mac上,但Linux或Windows的工具也很有趣。
UPDATE
在研究了这些建议之后,我决定Doxygen就是我想要的。 它给出了调用者和被调用者图,并使用静态分析,跨平台和免费的。
感谢所有其他建议。 他们睁大了我的眼睛。
Doxygen可以显示来电者和被调用者的树木:
Doxygen的
编辑1:
CppDepend看起来非常棒。
http://www.cppdepend.com/
您可以使用DEPENDS应用程序来检测Windows中的大多数C C ++和C#库。
但仍然不会给你打电话链...
这里是链接DEPENDS