使用clang分析C代码

我们想对用户的C代码进行一些相当简单的分析,然后使用该信息来检测他们的代码(基本上用一些检测代码重新生成他们的代码),以便用户可以对他们的代码进行动态分析并获取事物的统计数据像某些数字类型的值范围.

clang现在应该能够处理足够的C来处理我们的用户会抛出的代码 – 而且由于clang的C覆盖率在我们完成时不断改进,所以它会更好.

那么如何使用像这样的clang作为独立的解析器呢?我们认为我们可以生成一个AST,然后继续寻找我们有兴趣跟踪的类的对象.有兴趣听取其他使用没有LLVM的clang的人的意见.

最佳答案 clang设计为模块化.从其页面引用:

A major design concept for clang is
its use of a library-based
architecture. In this design, various
parts of the front-end can be cleanly
divided into separate libraries which
can then be mixed up for different
needs and uses.

查看像libast这样的clang库以满足您的需求.阅读更多here.

点赞