我已经接管了一个大型代码库,并希望了解某些类及其方法的使用方式和位置。

有没有什么好的工具可以以某种方式可视化依赖关系并绘制漂亮的调用树或类似的东西?

该代码是 Visual Studio 中的 C++ 代码(如果这有助于缩小选择范围)。

有帮助吗?

解决方案

以下是一些选项:

最后一个,doxygen,更多的是一个自动文档工具,但它能够生成依赖图和继承图。它也根据 GPL 获得许可,这与前两个不是免费的不同。

其他提示

当我使用 Doxygen 时,它会生成调用者和被调用者的完整列表。我认为你必须打开它。

大卫,谢谢你的建议。我花了周末试用这些程序。

Doxygen 似乎是这 3 个工具中最全面的,但对于方法的调用者来说,它仍然有一些不足之处。

所有 3 个 C++ 模板似乎都不同程度地存在问题。CC-Rider 在分析过程中崩溃了,CodeDrawer 没有显示很多关系。Doxygen 工作得很好,但它也没有找到并显示所有关系,而是用大量的宏引用让我不知所措,直到我将它们过滤掉。

所以,也许我应该澄清一下“大型代码库”,以获得最终的其他建议:总共超过 10 万行代码分布在 100 多个模板文件中,加上几个将它们整合在一起的实际类文件。

还有其他工具可以胜任这项任务并且可以做得更好(更彻底)吗?哦,具体来说:有什么可以理解 IDL 和 COM 接口的吗?

当我使用 Doxygen 时,它会生成调用者和被调用者的完整列表。我认为你必须打开它。

我当然这样做了,但正如我提到的,doxygen 并不考虑 IDL 中定义的对象之间的接口。它“仅”显示直接 C++ 调用。

不要误会我的意思,它的作用已经很令人惊奇了,但从我试图很好地理解一切如何组合在一起的高层观点来看,它仍然不完整。

在 Java 中,我会从 JDepend 开始。在 .NET 中,使用 NDepend。不知道C++。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top