转自:http://blog.csdn.net/chen19870707/article/details/42393217
权声明:本文为博主原创文章,未经博主允许不得转载。
C++ 代码静态分析工具cppcheck
-
Author:Echo Chen(陈斌)
-
Email:chenb19870707@gmail.com
-
Blog:Blog.csdn.net/chen19870707
Date:Jan.1st , 2015
近来游戏进入尾期,已上线运营,需求比较少,可以有时间整理优化下代码,但是优化如果没有一个标准,很难有一个实际的效果,所以先从简单的代码静态分析开始,找了许多代码静态检查的工具,splint,pclint、purify,infusion、cppcheck等,但cppcheck文档最精简,看起来最容易使用,个人简单的思路解决复杂问题,所以选择了cppcheck.
1.cppcheck下载
cppcheck现在的版本已经出到1.68,新版本的cppcheck需要C++11的支持,这里选择最经典的49版本。
2.cppcheck安装
1: tar jxvf cppcheck-1.49.tar.gz
2: cd cppcheck-1.49
3: make
4: make install
如果make过程中报如下错误:
则需要安装pcre第三方正则表达式库
安装完再make & make install 成功。
3.cppcheck 使用
使用cppcheck –h 可以查看帮助,下面简单介绍下最有用的几个选项
1: cppcheck . -j 3 --enable=all --xml 2>result.xml
-j参数指定的是检查线程的个数,如果需要检查代码的量很大,-j参数还是很有用的
--enable指定当前指定的检查级别,可选的参数有all,style,information等--xml 是输出xml的版本
4.cppcheck分析结果
如下截取了工程的部分分析结果:
这里主要是说这些变量都应该设置为const变量。
5.cppcheck可以分析错误的类型
1: 自动变量检查
2: 数组的边界检查
3: class类检查
4: 过期的函数,废弃函数调用检查
5: 异常内存使用,释放检查
6: 内存泄漏检查,主要是通过内存引用指针
7: 操作系统资源释放检查,中断,文件描述符等
8: 异常STL 函数使用检查
9: 代码格式错误,以及性能因素检查
-
-
Echo Chen:Blog.csdn.net/chen19870707