记录/可视化调用图的工具?

时间:2011-01-12 14:51:51

标签: visualization call-graph

最近加入了一个包含大量代码的项目,我想开始记录并通过调用图可视化一些流程,以便更好地理解所有内容如何组合在一起。这是我希望在我的理想工具中看到的:

  • 每个节点都是一个函数/方法
  • 如果一个函数可以调用另一个,则
  • 节点已连接
  • 在进行调用的详细条件之间的可选方框(或者可以像工具提示一样悬停的标签图标)
  • 还在描述参数的边缘上显示图标
  • 将鼠标悬停在节点上并显示说明
  • 节点显示伪代码的可选图标
  • 场景/域视图 - 显示特定用例的完整图表的子集
  • 幻灯片查看模式 - 对于每个帧,当前正在执行的功能都会突出显示
  • 有关显示内容的大量选项,以减少屏幕上的混乱

这种工具的交互使用是关键,我不是在寻找Graphviz类型的解决方案,因为会有太多的混乱。形成整个图形的子集视图的能力将非常方便(可能具有不重要的混乱灰色)。不需要从源代码自动生成,很乐意手动输入。

几乎像一张思维导图。

这有意义吗?如果您不了解这样的工具,您是否也认为它会有用? (以防我有一天决定去抓痒!)

2 个答案:

答案 0 :(得分:1)

您没有提到您正在使用的环境,但如果它是.NET,NDepend可能会派上用场。

答案 1 :(得分:0)

使用工具NDepend进一步发展 Willem van Rumpt 的答案,你确实可以获得像这样的call graph免责声明:我是该工具的开发人员之一

Call graph

为此,您只需要将结果导出到CQLinq code query

code query exporting

这样的代码查询,可以为任何方法实际生成,这要归功于下面的右键菜单。

Select methods that use me directly or indirectly