为C代码建立调用树

时间:2012-01-26 13:20:40

标签: c unix callstack

我有一个用C编写的大代码,但我自己并没有写完所有代码。我希望在代码中创建一个调用结构的概述以供参考。那就是:我想知道代码中的不同函数调用了什么(非标准)函数,从而创建了不同函数的层次结构或树。是否有任何免费的,与Unix兼容的程序(这意味着没有Visual Studio,但是Vim插件或者这样的程序会很简洁)可以做到这一点,还是我必须自己写一些可以做到这一点的东西?

5 个答案:

答案 0 :(得分:2)

Doxygen也这样做,但必须启用它。

答案 1 :(得分:1)

有关可用工具的概述,请参阅 http://en.wikipedia.org/wiki/Call_graph

有一个名为CCTree的Vim插件C Call-Tree Explorer http://www.vim.org/scripts/script.php?script_id=2368

答案 2 :(得分:1)

正如您提到的Vim插件,请查看http://sites.google.com/site/vimcctree/。它使用CScope生成树,因此您需要首先生成源文件的CScope数据库。

答案 3 :(得分:1)

查看http://www.gson.org/egypt/这使用GCC来处理代码,并从它发出的AST中提取程序中的相互依赖性。

答案 4 :(得分:1)

gprof会这样做。它还会生成执行配置文件,但这样做会创建一个调用树。