任何可以执行上述任何操作的代码分析或“逆向工程”工具?:
答案 0 :(得分:1)
Doxygen + GraphViz (对于图片,doxygen需要GraphViz)
具有最大的语言支持(因为您没有指定语言)并且查看器是浏览器,因此一旦生成,任何人都应该能够查看它。
配置doxygen以生成甚至未记录的成员,并包含源代码。这样,源代码将包含指向函数声明的链接,以便于导航。
还有一些专门用于语言的工具,例如Understand for C++。
答案 1 :(得分:1)
计算哪些函数调用哪些函数
NDepend可以产生一些有用的方法或类调用图,例如下面的截图(图片全尺寸here)免责声明:我是该工具的开发人员之一
查找有关how to generate call graph with NDepend here的更多解释。
计算哪些类是哪些类的子类
NDepend可以生成类继承图(explanation to generate class inheritance graph here)。
计算哪些类实例化哪些类
NDepend允许通过LINQ查询编写代码查询(我们称之为CQLinq)。使用CQLinq,您可以请求创建特定类的方法或类,例如:
from m in Methods
where m.CreateA("NUnit.Core.NUnitConfiguration")
select m
可以将此类CQLinq查询结果导出到图表视图,以获得依赖关系的直观表示。
作为旁注,使用CQLinq还可以编写代码规则。默认情况下会提出超过200 code rules的内容,其中包括有关设计,架构,代码质量,代码演变<的规则/ em>,命名约定,死代码, .NET Fx用法 ......
CQLinq规则可以是verified live in Visual Studio,也可以在构建过程中验证reported in an HTML/javascript report。
答案 2 :(得分:0)
了解2.0
...显示依赖 在写入的代码部分之间 不同的语言。 CLA成功了 轻松跟随电话。 〜Combined Language Analysis
特别是此Function Call tree图片。