cppcheck是一款小型的代码缺陷静态检查工具,支持C、C++代码,作为编译器的一种补充检查方式,不同于C/C++编译器等其他众多分析工具,它不检测代码的语法错误,只检查编译器检查不出来的BUG类型。cppcheck对源代码执行严格的逻辑检查,因此cppcheck很少在报告错误方面出错,用户可以根据检查结果和自身需求对源代码进行相应修改。
cppcheck使用方法分为3种:
-
GUI方式,cppcheck安装完成后可以直接打开软件来检测代码;
-
命令行方式:可以在CMD命令行下来进行代码检测;
-
集成到IDE开发环境中使用(QT Creator)。
cppcheck执行的检查:
- 自动变量检查
- 数组的边界检查
- class类检查
- 过期的函数、废弃函数调用检查
- 异常内存使用、释放检查
- 内存泄漏检查,主要通过内存引用指针
- 操作系统资源释放检查
- 异常STL函数使用检查
- 代码格式错误,以及性能因素检查
文件下载地址:http://cppcheck.sourceforge.net/
检查规则:
--enable=all 启用所有消息
--enable=information 启用信息消息
--enable=performance 启用性能消息
--enable=warning 启用警告消息
检查结果:
error:出现错误
warning:为了预防BUG防御性编程建议信息
style:编码格式问题(没有使用的函数、多余的代码等)
portablity:移植性警告,该部分如果移植到其他平台上,可能出现兼容性问题
performance:建议优化该部分代码性能
information:一些信息
QT Creator集成cppcheck:
QT Creator-->工具-->选项-->环境-->外部环境-->添加工具