LINUX.ORG.RU

Создание графа вызовов функций C


0

0

Хочется создать граф (в dot) вызовов функций на С по совокупности *.c файлов, считая, что если внутри функции есть вызов другой функции вне комментария --- то она вызывается и учитываются только функции из указанных *.h и *.c файлов.

Хотелось бы решение на готовых инструментах. Я могу взять mini-C compiler как основу или ctags + собственный разбор --- но немного лень.

Нужно это для создания графов в технологическом разделе РПЗ/отчета по ДЗ, а еще для анализа чужих сурсов.

PS Если невнятно выражаюсь --- то вот как это выглядит для питона: http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-underst...

★★★★★

Re: Создание графа вызовов функций C

Был когда-то в Development такой вопрос (и ответ на него). Попробуй поиском.

tailgunner ★★★★★ ()
Ответ на: Re: Создание графа вызовов функций C от tailgunner

Re: Создание графа вызовов функций C

Что-то не нашел. Я знаю про вариант на http://www-128.ibm.com/developerworks/linux/library/l-graphvis/?ca=dgr-lnxw06... и gprof + dot. Но хотелось бы решить эту задачу на уровне лексического и синтаксического анализа, без кодогенерации и без профилировщика.

sv75 ★★★★★ ()

Re: Создание графа вызовов функций C

АААА!!! Какая полезная штука!

anonymous ()
Ответ на: Re: Создание графа вызовов функций C от Vinick

Re: Создание графа вызовов функций C

А он разве не генерит Latex/dot?

Кстати, а есть ли еще генерилка графа по make-файлу? Для технологического раздела РПЗ. :)

sv75 ★★★★★ ()
Ответ на: Re: Создание графа вызовов функций C от sv75

Re: Создание графа вызовов функций C

>А он разве не генерит Latex/dot?

вроде генерит. Я в том смысле, что надо будет среди кучи сгенерированых файлов найти конкретный, отображающий граф данной функции.

Vinick ★★ ()
Ответ на: Re: Создание графа вызовов функций C от sv75

Re: Создание графа вызовов функций C

> Кстати, а есть ли еще генерилка графа по make-файлу? Для технологического раздела РПЗ. :)

А, нашел.

sv75 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.