У меня есть коллекция устаревшего кода C, который я реорганизую, чтобы отделить вычислительный код C от GUI. Это усложняется из-за сильно рекурсивного математического основного кода, являющегося объявлениями в стиле K & R. Я уже отказался от попытки преобразовать их в объявления ANSI из-за вложенного использования параметров функции (просто не удалось получить последние 4 ошибки компилятора).
Мне нужно переместить некоторые файлы в чистую DLL и определить минимальный интерфейс для публикации, что потребует написания функций-оболочек для публикации типизированного интерфейса.
Я разметил ключевые исходные файлы с помощью разметки Doxygen @callergraph, поэтому для отдельных функций создаются информативные графики. Кроме того, я хотел бы объединить эти графики, чтобы я мог определить самую узкую границу функций, открытых внешнему миру.
Оригинальные заголовочные файлы бесполезны - они представляют все как нетипизированные функции языка Си.
Существуют сотни функций, поэтому простая проверка сгенерированных коллографов является болезненной.
Я подумываю написать какой-нибудь инструмент для слияния DOT - установка DOT_CLEANUP = NO заставляет Doxygen оставлять там промежуточные файлы DOT, а не просто сохранять сгенерированные ими файлы png.
Я не одержим этим графическим решением - я был бы весьма рад, если бы кто-то мог предложить альтернативный инструмент анализа (бесплатный или относительно дешевый) или методику, использующую вывод Doxygen XML для достижения той же цели.
Диаграмма, объединенная на уровне файлов, имеет определенную привлекательность для клиентской документации, а не для простого списка: -)