如何仅通过CLANG检查一位检查员?
当我使用clang检查警告时,我使用这种方式
# clang --analyze *.c
我只想使用一个检查器
ex)内核。仅DivideZero(C,C ++,ObjC)
请告诉我一些选择!
答案 0 :(得分:0)
要使用clang --analyze
运行单个检查器,请将--analyzer-no-default-checks -Xanalyzer -analyzer-checker=<checker>
添加到命令行。例如:
$ clang --analyze --analyzer-no-default-checks -Xanalyzer -analyzer-checker=core.DivideZero hello.c
hello.c:44:12: warning: Division by zero
return 6 / z;
~~^~~
1 warning generated.
在这种情况下,hello.c
包含三种默认会报告的各种缺陷,但是通过仅启用core.DivideZero
,只会报告一个缺陷。引发此报告的代码片段为:
int divide_by_zero()
{
int z = 0;
return 6 / z;
}
我主要是通过查看Clang Command Line Argument Reference来弄清楚如何运行单个检查程序的,但这还不是很清楚,因此也需要一些试验和错误。 clang
程序是一种多功能前端,可以在后台调用其他工具,因此可以使用正确的-X
,-
和{ --
前缀有点挑战。
Available Checkers的列表也很有用,其中包括诸如core.DivideZero
之类的名称。
我在Linux / x86_64上使用clang + llvm版本3.7.1和8.0.1进行了测试。