1
7
几乎可以肯定是过度的,但是你可以为C,C++,PHP,Java,C语言等等做更多的事情。 Doxygen (如果你有 Graphviz dot 安装)。 Here's a page with a sample call tree 由doxygen/dot生成。 Doxygen在Windows上运行很好,可以 output HTML and a few other formats . |
2
1
那些读取源代码但在深层语义意义上不理解编程语言的工具只能给您一个调用图的近似值。(如果宏中发生调用怎么办?如果该调用发生在禁用的预处理器条件内呢?如果是间接呼叫怎么办?) 如果这足够好,而且您真的不想知道间接调用的作用,那么像doxygen和cscope这样的工具可能会有所帮助。 如果您想要一个准确的调用图,您需要一个工具来构造一个使用完整的语言知识的调用图。frama-c(见其他答案)afaik就是其中之一,尽管我不知道它如何处理宏和间接调用。 不是免费的,但是 DMS Software Reengineering Toolkit and its C front end 具有完整的C宏/预处理器处理能力,并为文件系统构造调用图。它在调用图构造中特别包含了一个要分析的点,以便为间接函数调用的位置提供保守的近似值。见 example call graph 黑弧(直接调用)和蓝弧(保守分析)间接调用。 |
3
0
许多工具产生这种调用图。作为一个核心的“识字编程”工具,Doxygen很可能拥有最多的结果表示选项。 位于的开源工具 http://frama-c.cea.fr/ 生成调用图(也为点格式),并尝试按“服务”自动对函数进行分组: http://img23.yfrog.com/img23/8180/9il.png |
4
0
CodeInsight是一个商业编辑器,具有CTags/CScope的功能。它还可以显示调用树图(以及几乎任何其他关系)。 |
5
0
源导航器似乎又在开发中了(最新版本的sourcenav ng是在今年2月发布的)。源导航器可以为您提供调用树、类依赖项等。我没有尝试过最新版本。适用于Windows或x11。 |
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |