首页 > 代码库 > C++ 代码静态分析工具cppcheck

C++ 代码静态分析工具cppcheck

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版本。

    下载地址:cppcheck-1.49.tar.bz2

    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

    -

  • C++ 代码静态分析工具cppcheck