8

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

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

4

3 回答 3

4

clang/llvm可以生成graphviz点文件

例子:

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应该是高度可配置的(但我不是很熟悉)。

于 2014-12-05T09:01:10.523 回答
2

使用 Enterprise Architect 工具。

http://www.sparxsystems.com/enterprise_architect_user_guide/9.2/execution_analyzer/generating_sequence_diagram.html

您可以在调试代码时生成序列图。

演示:在线演示

注意:- 这也适用于 C++ 代码。只需使用本机调试器。

于 2014-12-05T07:13:33.007 回答
0

如果您不介意纯文本输出,'cflow' 将完成这项工作。它至少在 Debian 的存储库中,并且可能在大多数 Linux 发行版的存储库中。

于 2014-12-05T07:28:40.403 回答