问题描述
我的问题与以下类似的问题不同:
My question is different from though similar to the ones such as:
而不是寻找类图,我更感兴趣的是找到调用链和依赖关系并生成漂亮的图形。
Instead of looking for class diagrams, I'm more interested in finding call chains and dependencies and generating nice-looking graphs.
有没有这样的工具?我知道 cscope 和 ctags 可以做一些我想要做的,但是以非常低级的交互方式(一次一个查询)。我想要一些更自动化的东西,例如,给定一个API,找到所有的子例程调用路径,直到它到达叶子并显示给我。
Is there such a tool? I know cscope and ctags can do a little bit of what I'd like to do but in very much low-level interactive manners (one query at a time). I'd like something more automated, e.g., given an API, find all its sub-routine call paths till it reaches the leaf and show them to me.
是否有已经有这个工具了吗?
有可能在二进制级别吗?像库中的反向工程函数依赖(.a,.so,.dll作为输入)?
Is there a tool for this already?Is it possible to do it at the binary level? like reverse-engineering function dependencies in a library (.a, .so, .dll as input)?
编辑:
我喜欢静态分析工具,因为我希望它可以用于库和模块代码。
I prefer static analysis tool over profilers since I would like it to work for library and module code as well.
另外我更喜欢跨平台的解决方案。我主要是在Mac上,但Linux或Windows的工具也很有趣。
Also I prefer cross-platform solutions. I'm mainly on a Mac but tools for Linux or Windows will be interesting as well.
更新
在研究了建议之后,我决定Doxygen是我想要的。它提供调用者和被调用者的图表,并使用静态分析,跨平台和免费。
After researching into the recommendations I decided that Doxygen is what I want. It gives caller and callee graphs, and uses static analysis, cross-platform, and free.
感谢所有其他建议。他们打开了我的眼睛。
Thanks to all the other recommendations. They opened my eyes quite a bit.
推荐答案
Doxygen可以显示来电者和被叫方:
Doxygen can display caller and callee trees:
Doxygen
编辑1:
Edit 1:
这篇关于C ++:依赖关系跟踪工具(逆向工程)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!