курящая куча спагетти просто приземлилась на мой стол, и моя задача - понять ее (чтобы я мог реорганизовать/переопределить ее).
Код C и беспорядок глобальных переменных, типов структур и вызовов функций.
Я хотел бы построить графики кода с информацией:
- График вызовов
- Какие типы структур используются, в каких функциях
- Какая глобальная переменная используется в какой функции
Надеюсь, это упростит идентификацию подключенных компонентов и извлечение их для разделения модулей.
Я попробовал следующее программное обеспечение для аналогичных целей:
- ncc
- ctags
- codeviz/gengraph
- doxygen
- Египет
- cflow
EDIT2:
- frama-c
- snavigator
- Поймите,
Недостатки этих или
a) требует от меня возможности компилировать код. Мой код не компилируется, так как отсутствуют части исходного кода.
b) проблемы с макросами препроцессора (например, cflow, который хочет выполнить обе ветки операторов #if). Запуск его через cpp испортил бы номера строк.
c) Мне по какой-то причине не удается заставить программное обеспечение делать то, что я хочу сделать (например, doxygen, документация для генерации графа вызовов не так-то просто найти, и поскольку в любом случае, похоже, это, вероятно, не стоит тратить больше времени на изучение параметров конфигурации doxygen). EDIT: я выполнил эти Doxygen instrcutions, но он только закрепил зависимости файлов заголовков.
Я нахожусь в Linux, поэтому это огромный плюс, если программное обеспечение предназначено для Linux и бесплатного программного обеспечения. Не уверен, что мой босс понимает необходимость покупать визуализатор: - (
Например: инструмент командной строки, в котором перечислены функции, на которые ссылается символ (= функция, переменная, тип), будет полезен (например, addr2line, но для имен/функций типов/переменных и исходного кода).
//Т