如何跟踪源代码调用堆栈

时间:2020-07-05 08:19:59

标签: c++ reverse-engineering

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

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

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

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

有人可以提出有用的工具/方法吗?

1 个答案:

答案 0 :(得分:0)

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

方法

Downloaded并安装了Doxygen。然后运行Doxywizard,即Doxygen GUI前端。 OpenVDB有一个org.springframework.batch.core.SkipListener#onSkipInRead(Throwable t)目录,该目录设置为Doxygen将在其上运行的工作目录。

Working directories

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

enter image description here

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

Dot tool

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

doc

enter image description here

依赖图示例:

Dependency graph sample