Мне нужно автоматически построить блок-схемы из кода C++, в идеале - одну блок-схему на исходный файл. Есть ли какой-либо инструмент (желательно C++/Python и с открытым исходным кодом или с высокой конфигурацией - так что я могу изменить внешний вид), который я могу использовать для создания блок-схем?Автоматически генерировать блок-диаграммы из кода C++
ответ
clang/llvm
может генерировать graphviz dot files.
Пример:
clang -S -emit-llvm -o hello.ll hello.cpp
opt hello.ll -dot-cfg -o hello.dot
Этот выход несколько .dot
файлов, по одному для каждой функции, определенной в hello.cpp
. Вы также можете генерировать графа доминирования, постпоглощающего графика и т. Д. (См. here).
После того, как у вас есть файлы .dot
, вы можете использовать dot
, чтобы преобразовать его в файл .png
. Сам файл .dot
содержит только структуру графика, поэтому вывод dot
должен быть очень настраиваемым (но я не очень-то знаком с ним).
Спасибо за предложение! .dot действительно отлично подходят для моей задачи. – Konstantin
Использование Enterprise Architect инструмент.
Вы можете создать диаграмму последовательности во время отладки кода.
Демонстрация: Online Demo
Примечание: - Это работает с кодом C++, а также. Просто используйте собственный отладчик.
Благодарим вас за предложение. Является ли он настраиваемым, могу ли я изменить внешний вид диаграмм? Полученная диаграмма в демонстрации, которую вы упомянули, выглядит довольно ... – Konstantin
Нет, это диаграммы последовательности. Диаграммы последовательности или диаграммы активности хороши для объектно-ориентированной базы кода, и ваш вопрос задан на C++. Если вам нужны блок-схемы, то используйте конструктор ракеты Code. http://www.rapidqualitysystems.com/ – user1
Если вы не против вывода открытого текста, «cflow» выполнит задание. Он находится в хранилищах, по крайней мере, Debian и, возможно, большинства дистрибутивов Linux.
Кажется, что cflow создает диаграммы вызовов, но мне нужны блок-схемы (как работает алгоритм) – Konstantin
Ах. Да, он анализирует ваш источник статически, поэтому, если вы хотите знать, как ваша программа на самом деле протекает во время выполнения, это вам не поможет. – JorenHeit
- 1. Автоматически генерировать класс C#
- 2. Генерировать XML из кода C#
- 3. Автоматически генерировать C++-файл из заголовка?
- 4. Генерировать автоматически DataTable из XML
- 5. Vim автоматически генерировать Ctags
- 6. Как автоматически генерировать декоратор в C#
- 7. Как автоматически генерировать C# файл класса из объекта JSON строки
- 8. Генерировать div автоматически mysql_fetch_array
- 9. Автоматически генерировать новую миграцию
- 10. Visual Studio 2015 генерировать UML из кода
- 11. Автоматически создавать диаграмму классов из кода ActionScript?
- 12. Автоматически генерировать html-код
- 13. Автоматический конечный автомат, генерировать граф из кода
- 14. Генерировать столбцы из строк автоматически (без IF)
- 15. Автоматически генерировать ввод
- 16. генерировать скрипты автоматически
- 17. Генерировать автоматически имя листов
- 18. Преобразование простого кода C++ в C# автоматически
- 19. Пытается генерировать RSA-подпись с Python из рабочего кода C#
- 20. Как автоматически генерировать Model & CRUD
- 21. Eclipse как генерировать диаграммы UML из кода
- 22. генерировать xml из пользовательского исходного кода
- 23. Как генерировать макет автоматически в Google mock для c
- 24. Yii2 - автоматически генерировать атрибут placeholder
- 25. JPA первичный ключ автоматически генерировать
- 26. NUnit. Как автоматически генерировать тесты?
- 27. Можно ли автоматически генерировать проекты Xcode?
- 28. Как автоматически генерировать разницу между версиями API?
- 29. Автоматически генерировать XSD на C# в Visual Studio IDE
- 30. Могу ли я автоматически генерировать методы get/set в C#?
Я знаю, что Enterprise Architect http://www.sparxsystems.com/enterprise_architect_user_guide/9.2/execution_analyzer/generating_sequence_diagram.html может генерировать диаграммы последовательности в фоновом режиме при отладке вашего кода. Когда вы закончите отладку, она попросит вас сохранить созданную диаграмму. Все функции, в которых вы установили точки останова и которые на самом деле попали во время сеанса отладки, рассматриваются в сгенерированной диаграмме последовательности. – user1
Таким образом, EA дает * динамический * анализ, а не статический анализ. –