在控制流图的路径中搜索

发布于 2024-11-15 02:30:30 字数 639 浏览 2 评论 0原文

很多时候,我在函数 foo 中进行打印时遇到问题,并且我想在代码中查找所有出现 Print 的情况,这些代码可从函数的控制流图中访问foo。或者在 foobar 之间的路径中的所有代码中(因为我在调用 foo 之前验证了假设为 true,在调用 foo 后为 false) bar,所以我想知道中间发生了什么)。

有没有任何工具可以让我轻松做到这一点。我不会使用 CIL 编译所有 C 代码,并编写一个 OCaml 模块来使用CFG。我想要一些麻烦最少的东西。

Eclipse CDT 应该能够做到这一点(您可以使用 show function hiererchy 计算 CFG),但我在那里没有找到类似的东西。

我现在的目标是 C/C++,但我会很高兴听到类似的工具?我不确定 CQL 有办法表达这一点。

Many times I'm having a problem with printing in function foo, and I want to look for all occurences of Print in code which is reachable in the Control Flow Graph from function foo. Or in all code in the paths between foo and bar (as I verified an assumption is true before I call foo, and false after I reach bar, so I want to find out what's happening in between).

Is there any tool that allows me to do that easily. I'm not going to compile all my C code with CIL, and write an OCaml module to do search with the CFG. I want something that works with minimum hassle.

Eclipse CDT should be able to do that (you can calculate the CFG with show function hiererchy), but I didn't find something similar there.

I'm now targeting C/C++, but I'll be glad to hear about similar tools? I'm not sure CQL have a way to express that.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文