【发布时间】:2013-12-25 18:08:34
【问题描述】:
使用 clang 和 graphviz,我可以为一些 C/C++ 代码 as explained in this answer 生成调用图。
现在我需要一个基于非常大的代码库(大部分是 C)计算的数据流图,这个代码库是一个软件,其中cmake 用作构建工具。
所以我的问题是,给定一个数据结构的名称,我怎么可能使用/实现这个结构来检索函数和文件的名称?
clang 项目的Libtool 中对一些数据流挖掘算法的引用很少(甚至不确定它是稳定的还是正在开发中的),但我在clang 本身或scan-build 上一无所获。
如何生成这条信息?我真的需要这个,给定一个我想检索代码中使用位置的名称,我审查过的几乎所有静态分析工具都专注于函数和方法,我需要检查 @987654327 中的数据结构用法@。
编辑:
我也在考虑使用 doxygen 作为文档,所以如果 doxygen 的 xml 输出对某些工具有用,我可以使用它。
【问题讨论】:
-
这可能有点古怪,但是您是否考虑过将整个代码库加载到 Eclipse 中,然后使用 Eclipse 的搜索功能来做到这一点?
-
@slugonamission 很好,因为我找不到任何有用的东西......;说出我应该在 Eclipse 中使用哪些工具,我知道 CDT 是用于 C 和 C++ 的 Eclipse 套件,但我不知道用于这种分析的工具是什么。
-
这并不是真正的数据流,但您的要求似乎只是检查数据结构的使用位置。通过使用 CDT + Eclipse,您至少可以以图形方式找到数据结构的使用位置(在某个地方的搜索菜单中),但不是完整的 DFG。