Clang Static Analyzer-使用手册-编写Checker框架
Clang Static Analyzer-使用手册-编写Checker框架
Clang Static Analyzer-使用手册-编写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了