C和C++的源代码分析和探索工具似乎非常缺乏。
有没有什么工具可以用来收集有关C和/或C++源文件的信息?cscope做了我需要的一部分,Doxygen看起来更近了。
在所有函数、调用者、被调用者、变量引用等的最小列表中,也许Doxygen的xml输出可以正常工作。
理想情况下,gcc或llvm可以为此而着迷,但我还没有找到一个方便的方法。
有什么建议吗?
发布于 2010-09-21 23:19:57
有clang静态分析器,它是llvm的clang前端的一部分,但我不知道它在C/C++上有多好。似乎他们的大部分努力都在朝着Objective-C的方向发展。
http://clang-analyzer.llvm.org/
Dot适用于调用图,您需要安装GraphViz并使用doxywizard在图部分(专家模式点部分中的CALL_GRAPH和CALLER_GRAPH )中选择调用图和调用图。
发布于 2010-09-21 22:31:38
您可能会发现SourceMonitor有助于对代码进行更多的统计分析,而且它是免费的:)
发布于 2010-09-22 10:44:34
我们的DMS Software Reengineering Toolkit及其C front end和C++ Front End可以提供大量关于C和C++程序的信息。
使用C前端的DMS可以解析大量的C源文件,构建完整的AST(甚至捕获注释)和符号表,并提供control and data flow analysis, with points-to analysis and call graphs。C++前端构建AST和完整的符号表,但尚未提供所有流分析信息。
DMS提供了调用解析器/流分析器的工具;您可以提供一些自定义代码来提取所需的信息。
它还具有修改AST和重新生成可编译源代码的附加功能。
我想你会发现,没有一种工具可以提取精确的自定义数据是“容易”使用的;你问的问题和答案的本质是由复杂的语言语义造成的。
https://stackoverflow.com/questions/3761282
复制相似问题