回答问题

我需要自动用 C++ 代码构建流程图,最好是每个源文件一个流程图。是否有任何工具(最好是 C++/Python 以及 开源高度可配置 - 所以我可以改变外观)可以用来创建流程图?

http://www.faqs.org/patents/img/20110088010_08.png

Answers

clang/llvm可以生成graphviz dot 文件。

例子:

clang -S -emit-llvm -o hello.ll hello.cpp
opt hello.ll -dot-cfg -o hello.dot

这将输出几个.dot文件,一个用于hello.cpp中定义的每个函数。您还可以生成优势图、后优势图等(参见此处)。

拥有.dot文件后,您可以使用dot将其转换为.png文件。.dot文件本身只包含图的结构,所以dot的输出应该是高度可配置的(但我不是很熟悉)。

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐