Установить дерево вызовов для кода C - PullRequest
1 голос
/ 26 января 2012

У меня большой код, написанный на C, но я не написал все это сам. Я хочу создать обзор структуры вызовов в коде для справки. То есть: я хочу знать, какие (нестандартные) функции вызываются разными функциями в коде, и, таким образом, создавать иерархию или дерево разных функций. Существуют ли какие-либо бесплатные Unix-совместимые программы (что означает отсутствие Visual Studio, но плагин Vim или что-то подобное), которые могут это сделать, или мне придется написать что-то, что может сделать это самостоятельно?

Ответы [ 5 ]

2 голосов
/ 26 января 2012

Doxygen тоже это делает, но его нужно включить.

1 голос
/ 26 января 2012

gprof сделает это.Он также генерирует профиль выполнения, но при этом создает дерево вызовов.

1 голос
/ 26 января 2012

Как вы упомянули плагин Vim, проверьте http://sites.google.com/site/vimcctree/. Он использует CScope для генерации дерева, поэтому вам нужно сначала сгенерировать базу данных CScope из ваших исходных файлов.

1 голос
/ 26 января 2012

Посмотрите на http://www.gson.org/egypt/ Это использует GCC для обработки кода и извлекает взаимозависимости внутри программы из AST, который она излучает.

1 голос
/ 26 января 2012

Обзор доступных инструментов см. http://en.wikipedia.org/wiki/Call_graph

Существует плагин Vim C Call-Tree Explorer, который называется CCTree. http://www.vim.org/scripts/script.php?script_id=2368

...