很多时候,我在函数中打印时遇到问题foo
,我想查找Print
在控制流图中可以从函数中访问的代码中的所有出现foo
。foo
或者在and之间的路径中的所有代码中bar
(因为我在调用之前验证了一个假设是正确的foo
,并且在我到达之后是错误bar
的,所以我想找出两者之间发生了什么)。
有什么工具可以让我轻松做到这一点。我不会用CIL编译我所有的 C 代码,而是编写一个 OCaml 模块来使用 CFG 进行搜索。我想要一些麻烦最少的东西。
Eclipse CDT 应该能够做到这一点(您可以使用 计算 CFG show function hiererchy
),但我在那里没有找到类似的东西。
我现在的目标是 C/C++,但我会很高兴听到类似的工具?我不确定CQL是否有办法表达这一点。