【问题标题】:Control Flow Graph generator for code in C++用于 C++ 代码的控制流图生成器
【发布时间】:2016-11-12 13:17:29
【问题描述】:

我正在寻找用 C++ 编写的源代码的控制流图生成器。 你知道任何开源的静态生成器吗?

我想在我的毕业项目中使用它来生成控制流图并突出显示在分析应用程序执行期间已执行的路径。

我已经编写了整个引擎来记录执行的行。

感谢您的所有回答。

【问题讨论】:

标签: c++ control-flow-graph


【解决方案1】:

您可以使用clangllvm

首先将你的程序编译成 llvm ir

clang++ -emit-llvm -S prog.cpp -o prog.ll

然后使用opt生成控制流图。

opt --dot-cfg prog.ll

这会输出一个点文件,可以使用graphviz 查看。在 Mac 上,您可以执行 brew install graphviz 并运行以下命令来生成 png。

dot -Tpng cfg.main.dot -o main.png

您应该为程序中的每个函数都有一个点文件,以便编写脚本自动将它们全部转换为 png 可能会更容易

【讨论】:

    【解决方案2】:

    CoFlo 是一个免费和开源的源代码分析工具,它可以从 C 和 C++ 源代码生成和分析控制流图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-05
      相关资源
      最近更新 更多