Cppcheck是一种C/C++代码缺陷静态检查工具。不同于C/C++编译器及其它分析工具,Cppcheck只检查编译器检查不出来的bug,不检查语法错误。我们的目标是(具有零误报即),以检测只实际中的错误代码。
Cppcheck是一个静态分析工具对C/ C ++代码。
C/ C ++编译器和很多其他分析工具,它不检测代码中的语法错误。
Cppcheck主要检测的漏洞,该编译器通常不检测的类型。
我们的目标是(具有零误报即),以检测只实际中的错误代码。
检测各种错误在你的代码。
- 出界检查
- 内存泄漏检测
- 检测可能的空指针废除
- 检查未初始化变量
- 检查STL的无效使用
- 检查异常安全
- 如果过时或不安全的功能是用来警告
- 警告没有使用的或多余的代码
- 检测各种可疑的指示代码中的bug
测试
- 选择一个项目并测试它的源与最新版本。写门票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函数;“
加载全部内容
微简vipage(代码自动生成器)v4.2 官方版42.9M6人在玩微简vipage官网。微简vipage是一款非常好用且功能强大的代码自动生成器,软件界面简洁,操作简单,非常适合前段工作用户,有需要的用户可以下载体验!
下载MD5多接口查询工具v501.4 绿色版3.9M4人在玩MD5多接口查询工具可以一键批量查询出接口的准确数值,大大提高了用户的办公效率,节省了工作时间,软件界面简洁,使用方便,还在寻找MD5多接口查询工具的用户,不妨下载哦!
下载Firebird Maestro(firebird管理工具)v17.2 免费版13.6M3人在玩FirebirdMaestro破解版。FirebirdMaestro是一款Firebird数据库管理工具,它的界面简洁,功能多样,是一款最适合数据库开发人员的软件,它可以让你轻松的对数据库进行操作,包括创建,编辑删除数据库等等。
下载HybridLv2018 绿色版7.7M2人在玩html编辑器哪个好用?html编辑器下载。HybridL是一款非常好用的html编辑工具,界面简洁,使用方便,可以帮助用户快速进行HTML代码编辑,有需要的用户不妨直接下载体验!
下载dnSpy反编译工具v2018 中文版20.8M2人在玩dnSpy中文版是一款功能强大的net程序反编译工具。可以对net程序进行反编译,还有替代库文档的功能,如果遇到了代码丢失或者损坏的情况,可以直接恢复,有需要的赶快下载吧!
下载ActivePerlv2018 中文版20.4M1人在玩activeperl是一款非常专业的pel的脚本编辑软件。activeperl能帮助用户编写出支持windows、uix等操作系统的ggi程序,编写完成后只需将这些程序存储为perl格式就可以大功告成,是用户编写cci程序必备助手。
下载notepad++v7.5.9.0 中文版8.2M1人在玩编辑器软件哪个好?Notepad++是一款非常有特色的编辑器,是开源软件,可以免费使用。Notepad++是用于编辑xml、脚本以及记笔记的最佳工具。这个工具的最好部分在于,你在Notepad++上打开的任何一个文档,在关闭后都会有一个残留文档,它有助于在意外删除重要文档,还有办法恢复。
下载RegexMagicv2018 免费版56.4M1人在玩RegexMagic是一款非常好用的在线正则表达式生成器,它可以让你轻松的创建符合你要求的正则表达式,RegexMagic为你提供功能强大的编写、测试、Debug功能,有需要的用户赶快下载吧!
下载TeamSQL官方下载v3.4.230 最新版105M0人在玩TeamSQL官网.TeamSQL是来自国外的一款云存储SQL管理工具,该软件可以帮助你使用云存储区域,对SQL文件或命令语句进行保存和管理。目前软件能够支持MySQL、SQLServer、redis等数据库。
下载Resource Hackerv5.1.6 绿色版3.1M0人在玩ResourceHacker是一款免费软件,用于查看,修改,添加和删除Win32可执行文件的资源。内置了一个内部资源编译器和反编译器。
下载