С clang и graphviz я могу сгенерировать граф вызова для некоторого кода C/C++ as explained in this answer.Как создать граф потока данных с помощью clang или других инструментов?
Теперь мне нужна схема потока данных, рассчитанная на действительно большой базе кода (это по большей части C), эта кодовая база является программным обеспечением, в котором cmake
используется в качестве инструмента построения.
Итак, моя проблема связана с именем структуры данных, как я могу получить имена функций и файлов, используя/реализуя эту структуру?
Существует несколько разреженной ссылки на некоторые алгоритмы интеллектуального анализа потоков данных внутри Libtool
из проекта Clang (даже не уверен, если это что-то стабильное или в развитии), но я не нашел ничего на самом clang
или scan-build
.
Как я могу сгенерировать эту информацию? Мне действительно нужно именно это, учитывая имя, которое я хотел бы получить там, где он используется в коде, почти все инструменты статического анализа, которые я просмотрел, сосредоточены на функциях и методах, мне нужно проверить использование структуры данных в clang
.
EDIT:
Я также рассматривает возможность использования Doxygen для документации, так что если выходной XML из Doxygen может быть полезно для некоторых инструментов, я могу использовать его.
Это может быть немного странно, но считаете ли вы загрузкой всей базы кода в Eclipse, а затем с помощью функций поиска Eclipse для этого? – slugonamission
@slugonamission хорошо, так как я не могу найти ничего, что работает ...; Назовите, какие инструменты следует использовать с Eclipse, я знаю, что CDT - это набор Eclipse для C и C++, но я не знаю, что используется для такого анализа. – algl
это не для потока данных, но ваши требования, похоже, состоят в том, чтобы проверить, где используется структура данных. Используя CDT + Eclipse, вы можете, по крайней мере, графически найти, где используется структура данных (в одном из меню поиска где-то), но не полный DFG. – slugonamission