生成C++代码的控制流图生成器

10
我正在寻找用于生成C ++源代码的控制流程图的生成器。 你知道任何开源、静态的生成器吗?
我想在我的毕业项目中使用它来生成控制流程图,并突出显示在分析应用程序执行期间执行的路径。
我已经编写了记录执行行的整个引擎。
感谢所有答案。

1
这类问题在此明确地被视为“不适合讨论范围”。请阅读此帮助中心文章中的第4点。 - πάντα ῥεῖ
3
在stackoverflow上询问软件推荐是不被允许的,但你可以在软件推荐上提出你的问题。 - nwp
不是开源的,但请参见https://dev59.com/w53ha4cB1Zd3GeqPbec3#41497191。 - Ira Baxter
2个回答

6
您可以使用 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格式。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接