Построение графа вызовов функций по исходному коду?
Сам я почти не программист, поэтому прошу прощение, если вопрос покажется странным, но возникла следущая потребность:
Есть программа (ну как программа — быдлокод для встраиваемой системы) написаный на Си, практически без использования стандартных вызовов, один поток, несколько обработчиков прерываний. Объем небольшой — порядка 3-5 тысяч строк, лежащих в нескольких файлах. Хочется автоматически построить структуру программы в графическом виде — какие функции в каких файлах лежат, что откуда вызывается и прочее. Только на основе статического анализа, т.е. отслеживать процесс реального выполнения программы потребности нет.
Есть ли какое-нибудь готовое средство? Желательно, чтобы все это сохранялось в редактируемом формате типа vsd/odg/svg, либо был встроенный графический редактор, чтобы поправить «шероховатости» автоматической рисовалки.
Так же вам поможет cflow, которая замечательно выдаёт графы вызовов функций. Её вывод можно и использованием cflow2vcg перевести .dot-формат, и GraphViz-ом отрендерить векторную графику. Это наиболее простой и оптимальный путь, мы так делали в курсовых по сетям. Красиво получалось :)