C/C  静态代码分析工具(Cppcheck)

C/C 静态代码分析工具(Cppcheck)

版本:v1.71 中文绿色版大小:7.7M

类别:编程软件系统:WinXP, Win7, Win8, Win10

立即下载

这里提供安装版和绿色便携版给大家,安装版的是最新版的哟,自行选择下载

  • C/C  静态代码分析工具(Cppcheck) v1.71 中文绿色版0

Cppcheck是一个易于使用的应用程序,它提供的C / C + +代码的静态分析。Cppcheck是一个C/C++代码分析工具,只检测那些编译器通常无法检测到的bug类型。

cppcheck工具的功能特点:

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

- 出界检查

- 内存泄漏检测

- 检测可能的空指针废除

- 检查未初始化变量

- 检查STL的无效使用

- 检查异常安全

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

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

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

cppcheck工具

使用方法

运行cppcheck -h可以得到参数的提示,这里直介绍我用到的参数

cppcheck -j 3 --enable=all search/*

-j参数指定的是检查线程的个数,如果需要检查代码的量很大,-j参数还是很有用的

--enable指定当前指定的检查级别,可选的参数有all,style,information等

其他说明:

测试

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

发展

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

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

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

市场营销

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

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

设计

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

积分

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

技术撰稿人

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

检查列表:

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函数;“

注意:

工具栏第一个按钮 可以添加检测的目录,但是这里不支持中文路径。

查看全部

更新时间:2017-11-01
厂商名称:
包名:
MD5:
权限须知点击查看
权限管理须知关闭
玩家评论 QQ群号:203046401
我要跟贴
    取消
    猜你喜欢
      同类推荐
      热门精品
      显示全部+最新应用