Python — Автоматически генерировать потоковые диаграммы из кода C ++

Мне необходимо автоматически создавать потоковые диаграммы из кода C ++, в идеале по одной потоковой диаграмме на исходный файл.
Есть ли какой-либо инструмент (предпочтительно C ++ / Python и любой открытым исходным кодом или же настраиваемый — так что я могу изменить внешний вид) что я могу использовать для создания блок-схем?

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

5

Решение

clang/llvm может генерировать графические точечные файлы.

Пример:

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 должен быть легко настраиваемым (но я не очень знаком с ним).

3

Другие решения

Используйте инструмент Enterprise Architect.

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

Вы можете создать диаграмму последовательности во время отладки кода.

Демонстрация: Демо онлайн

Примечание: — Это работает и с кодом C ++. Просто используйте Native debugger.

2

Если вы не возражаете против вывода в виде открытого текста, ‘cflow’ сделает всю работу. Он находится в репозиториях по крайней мере Debian и, вероятно, большинства дистрибутивов Linux.

0
По вопросам рекламы [email protected]