gpt4 book ai didi

c - 使用 Clang 进行动态检测

转载 作者:太空狗 更新时间:2023-10-29 15:07:34 25 4
gpt4 key购买 nike

我试图通过使用 C(可能还有 C++)进行一些动态代码检测来加快使用 Clang 的速度,我在其中获取源文件并生成检测输出。我想在任何 block 的开头添加一个函数调用,并更改所有 bool 表达式以调用某个函数,这样我也可以跟踪它。例如:

foo = a && (b || c);

会变成这样:

foo = EXPR_AND(a, EXPR_OR(b, c));

因此我可以跟踪发生的所有条件组合。

我假设使用 RecursiveASTVisitor 是最好的方法,但是有没有一种简单的方法可以为我访问的每个节点输出 C 代码?

如有任何关于完成此类任务的建议,我们将不胜感激!

注意:经过进一步调查,我刚刚发现 libclang,它看起来可能是我最好的 friend 。加上重写器,我可能正好拥有我需要的东西。任何指向好的示例的指针(我刚刚在 libclang 上找到了优秀的 Apple 开发人员 session 视频)都会很棒。

最佳答案

一个很好的例子见this project .

它使用 clang 来检测调用函数的进入和退出,它还检查传递参数的类型。

关于c - 使用 Clang 进行动态检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8946060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com