Clang Static Analyzer-使用手册-编写Checker框架

作者: 博客园精华区  更新时间:2021-04-08 17:33:00  原文链接


Clang Static Analyzer-使用手册-编写Checker

Checker是这个工具的灵魂

有了checker才可以检查你的代码

相当于就是CSA通过checker定义的检查方法去检查代码

添加Checker的办法

这里针对3.7.1的老版本,比较新的如llvm10以上的版本没法使用

1 在checkers清单里面添加checker

首先在/clang/lib/StaticAnalyzer/Checkers下的Checkers.td中添加一个申明

这里的let ParentPackage = xxx in{}

意思就是你想把这个checker放到什么checker类里面,这里根据自己的选择,随意选择位置添加,然后再通过一下格式添加

def xxxChecker : Checker<"xxx">,
  HelpText<"yyyyyy">,
  DescFile<"xxxxChecker.cpp">;

解释一下这里的HelpText是当你用到这个checker时的一个帮助提示,DescFile是实现cpp文件

2 添加checker代码到CMakeList里面

把checker的实现代码文件添加到CMakeList.txt里面为了下一次编译生成的时候重建到clang里面

在这个全是cpp这里,直接添加对应的文件就好了

3 编写实现代码.cpp

编写 lib/StaticAnalyzer/Checkers/xxxxx.cpp

在这个里面实现具体的代码逻辑

然后重新编译就好了,就可以使用对应的checker了