【问题标题】:Tools to document/visualize call graph?记录/可视化调用图的工具?
【发布时间】:2011-01-12 14:51:50
【问题描述】:

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

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

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

几乎就像一个思维导图。

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

【问题讨论】:

  • 乐意手动输入调用图吗?您究竟将如何使其保持最新状态?

标签: visualization call-graph


【解决方案1】:

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

【讨论】:

  • 您好,代码在大型机上,但我想在 Windows 下进行可视化。
  • 任何语言细节?粗略浏览一下您的个人资料似乎表明您正在使用 Java(以一种或另一种形式)。有一个名为 JDepend (clarkware.com/software/JDepend.html) 的 NDepend 的 Java 变体/克隆(惊喜,惊喜;),可能 NDepend 就是基于此)。我没有 Java 的基本经验,也没有 JDepend 的经验,所以你必须评估自己。
  • 我是 NDepend 负责人,我确认,在 2004 年 4 月 26 日的第一个 NDepend 版本中,工具名称是根据 JDepend 选择的 :o)
【解决方案2】:

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

为此,您只需将CQLinq code query 的结果导出到图表:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-22
    • 2011-10-26
    • 1970-01-01
    • 2015-03-02
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多