C ++:依赖关系跟踪工具(逆向工程) [英] C++: Dependency tracking tool (reverse engineering)

查看:321
本文介绍了C ++:依赖关系跟踪工具(逆向工程)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题与以下类似的问题不同:

My question is different from though similar to the ones such as:

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

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

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

Doxygen can display caller and callee trees:
Doxygen

编辑1:

Edit 1:

这篇关于C ++:依赖关系跟踪工具(逆向工程)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆