我需要自动用C ++代码构建流程图,理想情况下每个源文件有一个流程图。 是否有任何工具(最好是C ++ / Python和开源或高度可配置 - 所以我可以改变外观)我可以用来创建流程图?
答案 0 :(得分:3)
clang/llvm
可以生成graphviz dot files。
示例:
clang -S -emit-llvm -o hello.ll hello.cpp
opt hello.ll -dot-cfg -o hello.dot
这将输出多个.dot
个文件,每个文件对应hello.cpp
中定义的每个函数。
您还可以生成支配图,后支配优势图等(参见here)。
获得.dot
个文件后,您可以使用dot
将其转换为.png
个文件。
.dot
文件本身只包含图形的结构,因此dot
的输出应该是高度可配置的(但我并不熟悉它)。
答案 1 :(得分:2)
答案 2 :(得分:0)
如果您不介意明文输出,'cflow'将完成这项工作。它位于至少Debian的存储库中,可能是大多数Linux发行版。