Мне необходимо автоматически создавать потоковые диаграммы из кода C ++, в идеале по одной потоковой диаграмме на исходный файл.
Есть ли какой-либо инструмент (предпочтительно C ++ / Python и любой открытым исходным кодом или же настраиваемый — так что я могу изменить внешний вид) что я могу использовать для создания блок-схем?
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
должен быть легко настраиваемым (но я не очень знаком с ним).
Используйте инструмент Enterprise Architect.
Вы можете создать диаграмму последовательности во время отладки кода.
Демонстрация: Демо онлайн
Примечание: — Это работает и с кодом C ++. Просто используйте Native debugger.
Если вы не возражаете против вывода в виде открытого текста, ‘cflow’ сделает всю работу. Он находится в репозиториях по крайней мере Debian и, вероятно, большинства дистрибутивов Linux.