介绍:Clang Static Analyzer建立在Clang和LLVM之上。严格来说,分析器是Clang的一部分,因为Clang包含一组可重用的C ++库,用于构建强大的源代码级工具。Clang Static Analyzer使用的静态分析引擎是一个Clang库,可以在不同的上下文和不同的客户端中重用。
llvm+clang的源码安装:【采用这样的安装方式,而不是采用install 预编译的包(apt-get install方式)。这样就能获得源码的文件组织架构,方便扩充自己的检查规则。而安装预编译的包只能获得编译后的二进制,没有文件的组织架构。】
https://www.cnblogs.com/Long-w/p/6345028.html
clang静态检测:http://clang-analyzer.llvm.org/
checker的开发手册:http://clang-analyzer.llvm.org/checker_dev_manual.html
入门【用来调试开发的checker】
- 要查看源代码并构建项目,请按照Clang入门 页面的步骤1-4进行操作。
- 分析器源代码位于Clang源代码树下:
$ cd llvm / tools / clang
请参阅:include / clang / StaticAnalyzer,lib / StaticAnalyzer, test / Analysis。 - 分析器回归测试可以从Clang的构建目录中执行:
$ cd ../../../; cd build / tools / clang; TESTDIRS =分析进行测试 - 使用指定的检查器分析文件:
$ clang -cc1 -analyze -analyzer-checker = core.DivideZero test.c - 列出可用的检查器:
$ clang -cc1 -analyzer-checker-help - 有关不同的输出格式,微调和调试选项,请参阅分析器帮助:
$ clang -cc1 -help | grep“analyzer”
对整个工程进行静态检测:http://clang-analyzer.llvm.org/scan-build.html