绿茶软件园
绿茶软件园 > 下载中心 > 应用工具 > 编程开发 > cppcheck v1.71 官方版
更多下载地址
cppcheck v1.71 官方版

软件大小:14.7MB

软件语言:简体中文

软件授权:官方版

软件类别:编程开发

软件等级:

更新时间:2015-12-01

官方网站:www.33LC.com

应用平台:/Win8/Win7/WinXP

  • 软件介绍
  • 软件截图
  • 网友评论
  • 下载地址

cppcheck是款简单易用的c/c++代码缺陷静态检查工具。cppcheck不同于代码编译器以及其它的分析工具,它只检查编译器检查不出来的bug,不检查语法的错误,以检测实际中的错误代码为目标。

 

cppcheck简介:

Cppcheck是一个静态分析工具对C/ C ++代码。

C/ C ++编译器和很多其他分析工具,它不检测代码中的语法错误。

Cppcheck主要检测的漏洞,该编译器通常不检测的类型。

我们的目标是(具有零误报即),以检测只实际中的错误代码。

 

cppcheck功能介绍:

检测各种错误在你的代码。

- 出界检查

- 内存泄漏检测

- 检测可能的空指针废除

- 检查未初始化变量

- 检查STL的无效使用

- 检查异常安全

- 如果过时或不安全的功能是用来警告

- 警告没有使用的或多余的代码

- 检测各种可疑的指示代码中的bug

 

cppcheck特色介绍:

测试

- 选择一个项目并测试它的源与最新版本。写门票TRAC你从Cppcheck发现的问题。

发展

- 选择从Trac的车票,编写测试用例为它(和写评论测试用例已创建的车票)。

或者选择一个测试用例失败,并试图修复它。

打个补丁,并提交给Trac的内联如果是小,或者将其固定为一个文件。

市场营销

- 写文章,评论或告诉你的朋友们。

用户越多,我们有,更多的人,我们有测试和更好的,我们能成。

设计

- 创造新的良好的检查和创建门票TRAC他们。

积分

- 编写一个插件,你最喜欢的IDE或您的发行或操作系统创建一个包。

技术撰稿人

- 写出我们发现错误更好的文档。目前,只有少数的错误有任何文件都没有。

 

cppcheck检查列表:

1. 自动变量

指针变量是唯一有效的,只要该变量是在范围内。

2. 检查:

- 返回指针自动或临时变量

- 分配一个变量的地址给一个函数的一个有效的参数

- 返回引用本地/临时变量

- 返回函数参数的地址

- 指针参数可疑分配

- 功能参数无用分配

3. 布尔

布尔类型检查

- 使用增量布尔

- 一个布尔值与非零整数比较

- 布尔表达式的一个整数比0或1的比较

- 一个功能比较使用关系运算符返回布尔值

- 与布尔值使用关系运算符的布尔值比较

- 使用布尔按位中表达

- 指针加法的条件(无论是间接引用被忘记或指针溢出才能使病情假)

- 分配布尔值指针或浮动

4. 升压用法

检查升压无效用法:

- BOOST_FOREACH在集装箱改装

5. 边界检查

出界检查:

- 数组索引出界检测通过价值流分析

- 危险strncat函数的使用()

- 通过为尺寸字符常量的功能就像memset的()

- 的strncpy()离开字符串未终止

- 访问数组负折射率

- 主(的argv,argc个)参数不安全使用

- 访问数组索引变量检查其值之前

- 检查足够大的数组被传递给函数

- 分配内存以负尺寸

6. 类

检查每个类的代码。

- 缺少构造函数和拷贝构造函数

- 构造函数应该是明确的

- 通过构造函数初始化所有的变量?

- 是否分配的所有变量通过运算符='?

- 时发出警告memset的,的memcpy等都是在一个类中使用

- 如果内存类的分配使用malloc警告()

- 如果它是一个基类,检查的析构函数是虚拟的

- 是否有未使用的私有函数?

- “运算符='应该返回引用自

- “运算符='应检查分配给自

- 常量性的成员函数

- 顺序初始化的

- 推荐的初始化列表的使用

- 一个构件的与自身初始化

- 从“这个”可疑的减法

- 在构造函数调用纯虚函数/析构函数

- 重复的继承的数据成员

7. 条件

配合分配和其他条件的条件:

- 不匹配的分配和比较=>比较总是真/假

- 不匹配的LHS和RHS比较=>比较总是真/假

- 检测的使用|其中&应该使用

- 检测“如果”匹配与“否则,如果”条件

- 失配BITAND(一个&= 0XF0;一个与= 1; =>α= 0)

- 发现死代码是不可访问,由于反条件检查嵌套if语句

- 条件,始终是真/假

- 互斥超过||总为真

- 模结果总是为真/假的比较。

- 已知的变量值=>条件始终为真/假

8. 异常安全

检查异常安全

- 在析构函数抛出异常

- 在无效状态引发异常

- 投掷捕获异常的副本,而不是重新抛出原始异常

- 捕获到异常按值而不是按引用

- 在noexcept抛出异常,不抛出异常(),属性((抛出异常))或__declspec(不抛出)函数

- 未处理的异常规范时,调用函数foo()

9. IO使用格式字符串

检查格式字符串输入/输出操作。

- 功能“的sprintf”的不良的使用(重叠的数据)

- 在“scanf的”格式字符串缺失或错误宽度说明

- 使用已关闭的文件

- 文件输入/输出,无需定位结果未定义的行为

- 阅读到只被打开写文件(反之亦然)

- 对文件操作重新定位以追加模式打开

- 对输入流使用fflush()

- 输出流的无效使用。例如:“性病::法院<<性病::法院;”

- 错误一些给'printf的“或参数”scanf函数;“

软件截图
  • cppcheck
返回顶部