使用scan-build命令进行clang代码分析

时间:2013-10-16 14:00:44

标签: clang static-analysis

我在Ubuntu桌面上安装了scan-build / clang 2.9版。我使用make在那里构建我的C ++源代码。正如它所说的扫描构建将分析一个使用make构建的项目,如果你给出

scan-build make 

但在make之后我看到了一条消息

scan-build: Removing '/tmp/scan-build-2013-10-16-1' because it contains no reports.

也试过

scan-build --use-c++=/use/bin/clang++ make

Q1 - 我在这里做错了什么/失踪了。如何使用scan-build分析所有源文件。

Q2 - 是否有使用clang++ --analyze myfile.cpp的选项 分析单个源文件。但它给出了一个包含未找到'致命'错误'my.h

的头文件的错误

如何选择clang analyze以将其指向具有头文件的文件夹。

1 个答案:

答案 0 :(得分:2)

对于Q2,您应该可以使用:

scan-build clang++ -c myfile.cpp

或你的建议:

clang++ --analyze myfile.cpp

但您需要确保编译器知道所有包含和库(您应该能够成功将myfile.cpp编译为目标文件而无需分析)。这尤其包括-I目录。

scan-build还有-o选项,它指定HTML报告文件的目标目录。将根据需要创建子目录,以表示分析器的单独“运行”。如果未指定此选项,则会在/tmp中创建目录以存储报告,如您所知。

另一个有用的选项是-v(详细),它应该打印分析器可能遇到的任何错误。

最后但并非最不重要的一点是,您应该将分析与调试版本一起使用,其中禁用优化,但更重要的是,不删除符号的位置。

不确定是否有帮助,请告诉我......

相关问题