2013-12-08 2 views
5

С clang и graphviz я могу сгенерировать граф вызова для некоторого кода C/C++ as explained in this answer.Как создать граф потока данных с помощью clang или других инструментов?

Теперь мне нужна схема потока данных, рассчитанная на действительно большой базе кода (это по большей части C), эта кодовая база является программным обеспечением, в котором cmake используется в качестве инструмента построения.

Итак, моя проблема связана с именем структуры данных, как я могу получить имена функций и файлов, используя/реализуя эту структуру?

Существует несколько разреженной ссылки на некоторые алгоритмы интеллектуального анализа потоков данных внутри Libtool из проекта Clang (даже не уверен, если это что-то стабильное или в развитии), но я не нашел ничего на самом clang или scan-build.

Как я могу сгенерировать эту информацию? Мне действительно нужно именно это, учитывая имя, которое я хотел бы получить там, где он используется в коде, почти все инструменты статического анализа, которые я просмотрел, сосредоточены на функциях и методах, мне нужно проверить использование структуры данных в clang.

EDIT:

Я также рассматривает возможность использования Doxygen для документации, так что если выходной XML из Doxygen может быть полезно для некоторых инструментов, я могу использовать его.

+0

Это может быть немного странно, но считаете ли вы загрузкой всей базы кода в Eclipse, а затем с помощью функций поиска Eclipse для этого? – slugonamission

+0

@slugonamission хорошо, так как я не могу найти ничего, что работает ...; Назовите, какие инструменты следует использовать с Eclipse, я знаю, что CDT - это набор Eclipse для C и C++, но я не знаю, что используется для такого анализа. – algl

+0

это не для потока данных, но ваши требования, похоже, состоят в том, чтобы проверить, где используется структура данных. Используя CDT + Eclipse, вы можете, по крайней мере, графически найти, где используется структура данных (в одном из меню поиска где-то), но не полный DFG. – slugonamission

ответ

-1

Вы можете запросить

  • всех ссылки на символ
  • определения глобального
  • функции, вызываемой функциями
  • функции вызова функции
  • файлов, включая файл
  • и многое другое ,

с cscope.

+0

ничего не работает визуально? Поскольку этот проект действительно большой, простой список текста с терминала скоро станет действительно сложным для управления полезным способом; также нет слов на этой странице о внешних инструментах строительства, мне нужно такое сотрудничество из-за размера и процесса построения моей кодовой базы. – algl

+1

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. –

+0

как @JohnDoyle, этот вопрос был помечен как удаление только для ссылки. Я рекомендую вам повторно опубликовать более полный ответ. –

 Смежные вопросы

  • Нет связанных вопросов^_^