转自: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版本。

    下载地址: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【转】的更多相关文章

  1. C/C++代码静态分析工具调研

    C/C++代码静态分析工具调研 摘自:https://www.jianshu.com/p/92886d979401 简述 静态分析(static analysis)是指在不执行代码的情况下对其进行分析 ...

  2. 代码静态分析工具PC-LINT安装配置

    代码静态分析工具PC-LINT安装配置--step by step                             作者:ehui928                             ...

  3. 代码静态分析工具-splint的学习与使用[转]

    代码静态分析工具--splint的学习与使用[转] 引言 最近在项目中使用了静态程序分析工具PC-Lint,体会到它在项目实施中带给开发人员的方便.PC-Lint是一款针对C/C++语言.window ...

  4. PHP代码静态分析工具PHPStan

    最近发现自己写的PHP代码运行结果总跟自己预想的不一样,排查时发现大多是语法错误,在运行之前错误已经种下.可能是自己粗心大意,或者说php -l检测太简单,不过的确是有一些语法错误埋藏得太深(毕竟PH ...

  5. 代码静态分析工具--PMD,Findbugs,CheckStyle

    最近学习Mybatis的官方文档,看到了[项目文档]一节有很多内容没有见过,做个笔记,理解一下. PMD 扫描Java源代码,查找潜在的问题,如: 可能的bugs,如空的try/catch/final ...

  6. 代码静态分析工具——splint的学习与使用

    引言 最近在项目中使用了静态程序分析工具PC-Lint,体会到它在项目实施中带给开发人员的方便.PC-Lint是一款针对C/C++语言.windows平台的静态分析工具,FlexeLint是针对其他平 ...

  7. 静态代码检查工具 cppcheck 的使用

      CppCheck是一个C/C++代码缺陷静态检查工具.不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误.所谓静态代码检查就是使用一个工具检查我们 ...

  8. 静态代码检查工具 cppcheck 的使用(可分别集成到VS和QT Creator里)

    CppCheck是一个C/C++代码缺陷静态检查工具.不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误.所谓静态代码检查就是使用一个工具检查我们写的 ...

  9. C++代码静态分析工具splint

    1.引言 最近在项目中使用了静态程序分析工具PC-Lint, 体会到它在项目实施中带给开发人员的方便.PC-Lint是一款针对C/C++语言.windows平台的静态分析工具,FlexeLint是针对 ...

随机推荐

  1. cocos2d-x之CCCardinalSplineBy

    CCCardinalSplineBy概念 这个类是样条曲线动作,其创建函数CCCardinalSplineBy::create(float duration, cocos2d::CCPointArra ...

  2. textContent和innerText属性的区别

    原文摘自 textContent和innerText属性的区别 <!DOCTYPE html> <html> <head> <meta charset=&qu ...

  3. NOIP模拟赛 czy的后宫5

    描述 czy要召集他的妹子,但是由于条件有限,可能每个妹子不能都去,但每个妹子都有一个美丽值,czy希望来的妹子们的美丽值总和最大(虽然……). czy有一个周密的电话通知网络,它其实就是一棵树,根结 ...

  4. 救援(BFS)

    题目描述: 在你的帮助下,Oliver终于追到小X了,可有一天,坏人把小X抓走了.这正是Oliver英雄救美的时候.所以,Oliver又找到哆啦A梦,借了一个机器,机器显示出一幅方格地图,它告诉Oli ...

  5. Bzoj 1131[POI2008]STA-Station (树形DP)

    Bzoj 1131[POI2008]STA-Station (树形DP) 状态: 设\(f[i]\)为以\(i\)为根的深度之和,然后考虑从他父亲转移. 发现儿子的深度及其自己的深度\(-1\) 其余 ...

  6. linux关于yum

    yum仓库设置:1.cd /etc/yum.repos.d yum仓库 2.CentOS-Base.repo 网络源 CentOS-Media.repo 光盘源 设置 vi CentOS-Media. ...

  7. Linux 用户管理(二)

    一.groupadd --create a new group 创建新用户 -g  --gid GID 二.groupdel --delete a group 三.passwd --update us ...

  8. 【windows】【md5】查看文件的md5值

    certutil -hashfile filename MD5 certutil -hashfile filename SHA1 certutil -hashfile filename SHA256 ...

  9. Yii2 AR模型搜索数据条数不对,AR模型默认去重

    最近在做Yii2的项目时, 发现了一个yii2 自带的Ar模型会自动对搜索出来的字段去重. 默认去重字段: id,  其他字段暂没发现 1. 例如: public function fields { ...

  10. selenium - 常用浏览器操作方法

    常用浏览器操作 (1)初始化浏览器会话: from selenium import webdriver driver = webdriver.Chrome() (2)浏览器最大化操作: driver. ...