我已经接管了一个庞大的代码库,并希望了解如何以及在何处使用某些类及其方法。
是否有任何好的工具可以以某种方式可视化依赖关系并绘制一个漂亮的调用树或类似的东西?
代码在Visual Studio中使用C ++,如果这有助于缩小任何选择范围。
答案 0 :(得分:1)
答案 1 :(得分:1)
当我使用Doxygen时,它已经生成了一个完整的呼叫者和被叫者列表。我想你必须打开它。
答案 2 :(得分:0)
在Java中,我将从JDepend开始。在.NET中,使用NDepend。不了解C ++。
答案 3 :(得分:0)
Doxygen似乎是3中最全面的,但是对于方法的调用者来说仍然有一些不足之处。
所有3个似乎都有不同程度的C ++模板问题。 CC-Rider在分析过程中简单崩溃,CodeDrawer没有显示很多关系。 Doxygen工作得很好,但它也找不到并显示所有关系,而是用很多宏引用来压倒我,直到我把它们过滤掉。
所以,也许我应该为最终的其他建议澄清“大代码库”:> 100k行代码整体分布在100多个模板文件上,加上几个实际的类文件将它们全部拉到一起。
那里有任何其他工具,这可能取决于任务,可以做得更好(更彻底)?哦,特别是:了解IDL和COM接口的任何东西?
答案 4 :(得分:0)
当我使用Doxygen时,它已经生成了一个完整的呼叫者和被叫者列表。我想你必须打开它。
我当然这样做了,但就像我提到的那样,doxygen不会考虑对象之间的接口,因为它们是在IDL中定义的。它“仅”显示直接的C ++调用。
不要误解我的意思,它的功能已经令人惊讶了,但是从我的高级视图来看,它仍然不完整,试图很好地理解所有东西是如何组合在一起的。