标签:
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函数;“
厂商名称:
按键精灵2021官方下载22.8M558人在玩按键精灵2021官方版本是目前电脑上最受欢迎的一款键盘鼠标模拟软件,可以完美模拟人工对于鼠标键盘的操作,帮助你自动重复完成那些重复的操作。本版是按键精灵官方推出的按键精灵2017官方最新版本,欢迎广大用户前来体验。不管是日常办公还是游戏脚本,只要鼠标键盘能完成的,按键精灵2021版就能轻松帮你搞定!
下载phpMyAdmin最新版11.0M305人在玩phpMyAdmin是一个用PHP编写的,可以通过互联网控制和操作MySQL。通过phpMyAdmin可以完全对数据库进行操作,例如建立、复制/删除数据等等。phpMyAdmin是一个用PHP编写的软件工具[2],可以通过web方式控phpMyAdmin制和操作MySQL数据库。
下载notepad++8.2M561人在玩编辑器软件哪个好?Notepad++是一款非常有特色的编辑器,是开源软件,可以免费使用。Notepad++是用于编辑xml、脚本以及记笔记的最佳工具。这个工具的最好部分在于,你在Notepad++上打开的任何一个文档,在关闭后都会有一个残留文档,它有助于在意外删除重要文档,还有办法恢复。
下载海龟编辑器(Python编辑器)249.3M40人在玩海龟编辑器是编程猫推出的一款Python编辑器,专门针对少儿Python学习,让孩子通过简单的方式,爱上Python,学会Python,软件界面简洁,使用方便,想要快速学习Python的用户,不妨试试吧!
下载核桃编程电脑版208.1M3001人在玩核桃编程(c++python版)是一款针对少儿的编程学习平台,它和Scratch版的有所不同,这款版本主要是帮助孩子学习c++和python两种编程语言的,感兴趣的朋友不要错过了,欢迎下载体验。
下载小码精灵客户端171.6M0人在玩小码精灵是一款面向少儿的编程开发软件,它的定位是深入教育行业,线上线下结合,再加上编程大咖,对少儿进行多方位指导学习,建立属于中国自己的少儿编程游戏。感兴趣的朋友快下载吧。
下载CMDebug31.4M1人在玩CMDebug是编程工作者的必备工具。CMDebug可以帮助用户一键进行代码的帮调试检测,帮你快速查找问题,大大的节省了用户的工作时间,提高了工作效率和准确率。
下载DevEco Device Tool鸿蒙系统一站式集成开发环境268.3M123人在玩DevEcoDeviceTool是HarmonyOS智能设备一站式集成开发环境,支持HarmonyOS组件按需定制、一键编译和烧录、可视化调试、分布式能力集成等,帮助开发者高效开发和创新新硬件。
下载VNote(程序员笔记软件)90.4M3人在玩VNote是一个基于Qt框架的、免费的开源笔记软件。VNote专注于Markdown的编辑与阅读,以提供舒适的编辑体验为设计目标。,支持跨平台运行软件,所有文件都在本地存储,有需要的用户欢迎下载使用!
下载微信开发者工具稳定版129.0M100人在玩微信开发者工具稳定版是一款由微信官方推出的编程开发工具,通过这款软件,用户可以开发公众号新功能以及开发小程序,今天为大家带来的这款版本,是最新的稳定版,感兴趣的朋友快来下载体验吧。
下载