【发布时间】:2012-01-08 21:14:41
【问题描述】:
我有大量的手写 C++ 源代码(即 WebKit 和其他开源)。
我想要一个工具:
- 让我看看每个类的类间关系:
- 包含关系:即哪些其他类包含这个类,或者被它包含(头文件将模板化智能指针类型声明为成员数据)
- 声明的依赖关系(即在方法签名中使用类型;虽然我可以使用“在文件中查找”很好地看到这一点)
- 子类和超类层次结构
- 在 Windows 或 Linux(甚至基于 Web 的解决方案)上运行
- 最好有一个用户界面(或者要求太多?)
- 可以选择成为 IDE 中的插件
与相关问题C++ to UML (Reverse engineer / Round-trip engineering) 不同,我不需要它:
- 解析定义/实现(cpp 和 c 文件)
- 支持编辑或“往返”源代码
相反,解析应用程序和系统头文件中的类型声明(包括模板类型和 typedef)就足够了。我有所有头文件的列表。
我更喜欢它,如果它可以处理预处理器定义(尤其是#include 和#if),但如果有必要我可以预处理;和/或给它制作或项目各种格式的文件。
【问题讨论】:
-
请让您的问题自成一体,并定义“逆向工程 C++ 源代码”的含义。
-
也许使用 doxygen 来自动生成使用图。这至少会给你一些关于类关系的信息。注意:我从未使用过此功能,但请记住这是可能的。
-
@KerrekSB - 我希望我已经定义了它。如果有不清楚的地方,请提出具体问题。
-
听起来你可能想要一些依赖图生成。我自己不知道任何工具,但这可能值得搜索。
-
您想减少程序的执行并获得一个工具,将二进制代码转换为生成它的源代码中的关系?
标签: c++ webkit reverse-engineering