我正在寻找用于生成C ++源代码的控制流程图的生成器。 你知道任何开源、静态的生成器吗?我想在我的毕业项目中使用它来生成控制流程图,并突出显示在分析应用程序执行期间执行的路径。我已经编写了记录执行行的整个引擎。感谢所有答案。
您可以使用 clang 或者 llvm。首先将您的程序编译为 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格式。