C/C++白盒测试系列之Cppcheck使用介绍(一)
来源:互联网 发布:淘宝上的李宁是真的吗 编辑:程序博客网 时间:2024/06/01 07:32
- 工具简介
- 下载安装(Linux):
- 官方网址:http://sourceforge.net/projects/cppcheck/
- 安装方式:解压后,直接make进行编译,完成后,make install进行安装
- 验证安装:cppcheck -v 查看是否安装成功
- 特点介绍
- 主要检查编译器通常不能发现的缺陷。
- cppcheck能够发现很多错误,但不能发现所有的错误。
- 下载安装(Linux):
- 基本使用
- 检查单个文件:cppcheck foo.c
- 检查文件夹:cppcheck path
- 排除一个文件或者一个文件夹:cppcheck -isrc/foo.c src
- 使能检查规则:
- 默认:--enable=error
- --enable=all
- --enable=unusedFuntion path
- --enable=style
- 规则定义:
- error:出现的错误
- warning:为了预防bug防御性编程建议信息
- style:编码格式问题(没有使用的函数、多余的代码等)
- portablity:移植性警告。该部分如果移植到其他平台上,可能出现兼容性问题
- performance:建议优化该部分代码的性能
- information:一些有趣的信息,可以忽略不看的。
- 保存结果到文件中:重定向“>”
- 多线程检查代码(提高检查速度,充分利用CPU功能):cppcheck -j 4 src
- 高级使用
- xml 输出
- 使用方式:cppcheck --xml-version=2 foo.cpp
- error的组成元素
- id:error的id
- severity:error的性质(error、warning......)
- msg:error的具体信息(短格式)
- verbose:error的信息(长格式)
- location的组成元素:
- file:含有相对或者绝对路径的文件名
- line:行数
- msg:消息描述
- 改良输出结果
- cppcheck --template=vs path (Visual Studio 兼容模式)
- cppcheck --template=gcc path (Gcc兼容模式)
- cppcheck --template={"{file},{line},{severity},{id},{message}"} (自定义模式)
- 输出过滤器(选特定的错误信息输出)
- 命令行模式:cppcheck --suppress=memleak:src/file1.cpp src/
- 使用文件模式(将过滤规则存到文件中):cppcheck --suppressions suppressions.txt src/
- xml 输出
- 报告美化
- ./cppcheck test.cpp --xml 2> err.xml
- htmlreport/cppcheck-htmlreport --file=err.xml --report-dir=test1 --source-dir=.
- ./cppcheck test.cpp --xml 2> err.xml
- GUI应用(cppcheck提供GUI的用户接口,比较简单,略去不写)
- 参考cppcheck用户手册
0 0
- C/C++白盒测试系列之Cppcheck使用介绍(一)
- C/C++白盒测试系列之Cppcheck使用介绍
- C/C++白盒测试 Cppcheck安装使用
- 【C++】cppcheck
- 渗透测试学习系列之《Metasploitable介绍》(一)
- Cppcheck(静态的C\C++代码分析的工具)
- C/C++白盒测试工具之codeviz安装使用
- 白盒测试 [代码规范] [C++] 一
- Android-PickerView系列之介绍与使用篇(一)
- Android-PickerView系列之介绍与使用篇(一)
- Android-PickerView系列之介绍与使用篇(一)
- C Primer Plus 学习笔记系列之(一)
- 读书笔记系列之C/C++关键字(一)
- C语言结构体学习系列之(一)
- 代码分析工具 cppcheck 使用介绍
- C++AMP介绍(一)
- Cppcheck--C/C++代码静态检测工具
- C/C++白盒测试工具之codeviz安装使用(续)
- 如何用 SQL Tuning Advisor (STA) 优化SQL语句
- hibernate正向工程创建数据库createDB.java
- Java 线程池的原理与实现
- OpenGL开发组件
- Java 调用 C/C++ 之 JNA 系列实战篇 —— 输出wchar_t* (三)
- C/C++白盒测试系列之Cppcheck使用介绍(一)
- iOS项目的目录结构和开发流程
- 通过Apache的HttpClient来实现HTTP方法并获取相应内容
- 畅通工程 (HDU 1232)
- Cocos2d-x 常见宏
- 15个编程好习惯
- dumpsys 总结,查看service 信息,设置service属性
- Java中static用法总结
- Android学习进阶和IoC