【问题标题】:How to keep track of source code call stack如何跟踪源代码调用堆栈
【发布时间】:2020-10-25 12:51:39
【问题描述】:

我正在尝试在 Go 中重新实现 C++ 代码。具体来说,我关注的是 OpenVDB 库的meshToVolume tool

如手动准备的code flow screenshot 所示,即使是粗略的调用堆栈图也相当令人困惑。

我正在寻找一种工具来帮助我跟踪调用堆栈和代码流。到目前为止:

  • 我查看了 this post 并尝试了 BOUML,但没有帮助
  • 此外,OpenVDB 有一个 Doxygen,但在跟踪代码流和调用堆栈方面我无法获得太多帮助

谁能推荐一个有用的工具/方法?

【问题讨论】:

  • 我建议完全不要使用代码流可视化工具。他们很快变得非常复杂,违背了他们的目的。尝试一一移植meshToVolume的类和函数。
  • @G.Sliepen 谢谢!我要试一试。我感谢任何可能有帮助的工具 =)

标签: c++ reverse-engineering


【解决方案1】:

使用 Doxygen,我终于可以可视化 调用图

方法

Downloaded 并安装了 Doxygen。然后运行 ​​Doxywizard,即 Doxygen GUI 前端。 OpenVDB 有一个 doc 目录,它被设置为 Doxygen 运行的工作目录。

如果不选择这些选项,调用图不会为我生成:

我的机器上安装了 Graphviz DOT 语言。在那里我可以使用它来生成调用图:

最后,Doxygen 生成输出 HTML,可在以下位置访问:

file:///C:/Users/m3/repos/doxygen-output/html/index.html

依赖图示例:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 2014-05-29
    • 2011-06-07
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    相关资源
    最近更新 更多