问题
I need to automatically construct flowcharts out of C++ code, ideally one flowchart per source file. Is there any tool (preferably C++/Python and either open-sourced or highly configurable - so I may change the look) that I can use to create flowcharts?
回答1:
clang/llvm
can generate graphviz dot files.
Example:
clang -S -emit-llvm -o hello.ll hello.cpp
opt hello.ll -dot-cfg -o hello.dot
This will output several .dot
files, one for each function defined in hello.cpp
.
You can also generate dominance graph, post dominance graph and more (see here).
After you have your .dot
files you can use dot
to convert it to a .png
file.
The .dot
file itself contains only the structure of the graph, so the output of dot
should be highly configurable (but I am not really familiar with it).
回答2:
Use Enterprise Architect tool.
http://www.sparxsystems.com/enterprise_architect_user_guide/9.2/execution_analyzer/generating_sequence_diagram.html
You can generate sequence diagram while you debug the code.
Demonstration: Online Demo
Note:- This works with C++ code as well. Just use Native debugger.
回答3:
If you don't mind plaintext output, 'cflow' will do the job. It's in the repositories of at least Debian, and probably most Linux distro's.
来源:https://stackoverflow.com/questions/27310166/automatically-generate-flowcharts-out-of-c-code