Я ищу генератор графа Flow Control для исходного кода, написанного на C ++.
Вы знаете какой-нибудь статический генератор с открытым исходным кодом?
Я хотел бы использовать его в своем дипломном проекте для создания графика потока управления и выделения путей, которые были выполнены во время выполнения анализируемого приложения.
Я уже написал весь движок для записи выполненных строк.
Спасибо за все ответы.
CoFlo — это бесплатный инструмент для анализа исходного кода с открытым исходным кодом, который генерирует и анализирует графики потоков управления из исходного кода C и C ++.
Ты можешь использовать clang
или же llvm
.
Сначала скомпилируйте вашу программу в llvm ir
clang++ -emit-llvm -S prog.cpp -o prog.ll
Тогда используйте opt
генерировать график потока управления.
opt --dot-cfg prog.ll
Это выводит файл точек, который можно просмотреть с помощью Graphviz. На Mac вы можете сделать brew install graphviz
и выполните следующее, чтобы сгенерировать png.
dot -Tpng cfg.main.dot -o main.png
У вас должен быть один файл точек для каждой функции в вашей программе, поэтому может быть проще написать скрипт для автоматического преобразования их всех в pngs