C/C++白盒测试系列之Cppcheck使用介绍(一)

来源:互联网 发布:淘宝上的李宁是真的吗 编辑:程序博客网 时间:2024/06/01 07:32
  1. 工具简介
    1. 下载安装(Linux):
      1. 官方网址:http://sourceforge.net/projects/cppcheck/
      2. 安装方式:解压后,直接make进行编译,完成后,make install进行安装
      3. 验证安装:cppcheck -v 查看是否安装成功
    2. 特点介绍
      1. 主要检查编译器通常不能发现的缺陷。
      2. cppcheck能够发现很多错误,但不能发现所有的错误。
  2. 基本使用
    1. 检查单个文件:cppcheck foo.c
    2. 检查文件夹:cppcheck path
    3. 排除一个文件或者一个文件夹:cppcheck -isrc/foo.c src
    4. 使能检查规则:
      1. 默认:--enable=error
      2. --enable=all 
      3. --enable=unusedFuntion path
      4. --enable=style
    5. 规则定义:
      1. error:出现的错误
      2. warning:为了预防bug防御性编程建议信息
      3. style:编码格式问题(没有使用的函数、多余的代码等)
      4. portablity:移植性警告。该部分如果移植到其他平台上,可能出现兼容性问题
      5. performance:建议优化该部分代码的性能
      6. information:一些有趣的信息,可以忽略不看的。
    6. 保存结果到文件中:重定向“>”
    7. 多线程检查代码(提高检查速度,充分利用CPU功能):cppcheck -j 4 src
  3. 高级使用
    1. xml 输出
      1. 使用方式:cppcheck --xml-version=2 foo.cpp
      2. error的组成元素
        1. id:error的id
        2. severity:error的性质(error、warning......)
        3. msg:error的具体信息(短格式)
        4. verbose:error的信息(长格式)
      3. location的组成元素:
        1. file:含有相对或者绝对路径的文件名
        2. line:行数
        3. msg:消息描述
    2. 改良输出结果
      1. cppcheck --template=vs path (Visual Studio 兼容模式)
      2. cppcheck --template=gcc path (Gcc兼容模式)
      3. cppcheck --template={"{file},{line},{severity},{id},{message}"} (自定义模式)
    3. 输出过滤器(选特定的错误信息输出)
      1. 命令行模式:cppcheck --suppress=memleak:src/file1.cpp src/
      2. 使用文件模式(将过滤规则存到文件中):cppcheck --suppressions suppressions.txt src/
  4. 报告美化
    1. ./cppcheck test.cpp --xml 2> err.xml
    2. htmlreport/cppcheck-htmlreport --file=err.xml --report-dir=test1 --source-dir=.
  5. GUI应用(cppcheck提供GUI的用户接口,比较简单,略去不写)
  6. 参考cppcheck用户手册
0 0
原创粉丝点击