转自: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. Vue和MVVM对应关系

    Vue和MVVM的对应关系 Vue是受MVVM启发的,那么有哪些相同之处呢?以及对应关系? MVVM(Model-view-viewmodel) MVVM还有一种模式model-view-binder ...

  2. 【Redis】DENIED Redis is running in protected mode

    .修改redis服务器的配置文件 vi redis.conf 注释以下绑定的主机地址 # bind 127.0.0.1 .修改redis服务器的参数配置 修改redis的守护进程为no ,不启用 &g ...

  3. 【laravel】laravel class 里面定义以head开头的方法会报错

    BadMethodCallException in Macroable.php line 81:Method head does not exist.

  4. Thinkphp5 同时连接两个库

    新建api/user.php <?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/8/25 * Time: 1 ...

  5. poj-2386 lake counting(搜索题)

    Time limit1000 ms Memory limit65536 kB Due to recent rains, water has pooled in various places in Fa ...

  6. Linux磁盘分区介绍

    分区?我们不是已经在BIOS界面分区好了吗?如果领导给你一块磁盘,你怎么用呢?所以就有了分区工具(fdisk和parted),fdisk工具只针对小于2T磁盘分区,且是交互式的:parted很强大,通 ...

  7. SPOJ QTREE6 Query on a tree VI 树链剖分

    题意: 给出一棵含有\(n(1 \leq n \leq 10^5)\)个节点的树,每个顶点只有两种颜色:黑色和白色. 一开始所有的点都是黑色,下面有两种共\(m(1 \leq n \leq 10^5) ...

  8. 反射的妙用-类名方法名做参数进行方法调用实例demo

    首先声明一点,大家都会说反射的效率低下,但是大多数的框架能少了反射吗?当反射能为我们带来代码上的方便就可以用,如有不当之处还望大家指出 1,项目结构图如下所示:一个ClassLb类库项目,一个为测试用 ...

  9. Leetcode30--->Substring with Concatenation of All Words(主串中找出连接给定所有单词的子串的位置)

    题目:给定一个字符串S(主串),一个字符串数组words,其中的字符串的长度相同.找到所有的子串位置,要求是words中字符串的一个连接: 举例: For example, given:s: &quo ...

  10. python - work5 - 类与对象 - 拓展题

    ''' 5:购物车类,包含的功能如下,请自行设计这个类以及类里面的方法:1)用户输入工资后,打印商品列表(商品列表自行设计展示模式)2)允许用户根据商品编号去选择商品3)用户选择商品后,检查余额是否足 ...