【网络学习】Coverity代码检查工具详细介绍
目录
Coverity Prevent SQS
检测缺陷(C/C++)
解决缺陷(C/C++)
能够发现的C/C++缺陷
并发
性能下降
导致崩溃的缺陷
不正确的程序行为
不正确的APIs使用
C/C++安全性问题
安全编码缺陷
隐含的缺陷
Coverity Prevent SQS
Prevent SQS(软件质量系统)是检测和解决C、C++、Java源代码中严重缺领先的自动化方法。可以对构建环境、源代码和开发的过程给出一个完整的分析,Prevent SQS建立了获得高质量软件的标准。
静态源代码分析允许我们在软件开发生命周期的早期阶段发现和修复缺陷,节省数以百万计的相关成本,Prevent SQS是业界标准,因为只有Coverity理解和掌握静态源代码分析技术所具有的严格的要求。
检测缺陷(C/C++)
- Prevent SQS源代码分析引擎利用软件DNA图谱来分析代码的各个方面。
- Prevent SQS模块化缺陷检测平台能够使很多模块(或检查器)同时分析代码,查找不同类别的缺陷。
- Prevent SQS预配置的库说明了作为产品的一部分的第三方库APIs和功能。
- Prevent SQS针对C/C++的分析引擎
引擎 |
功能 |
路径流程引擎 |
通过构建一个表示经过每一个函数的所有的路径的图表分析代码中的每个函数的控制流 |
数据追踪引擎 |
用于分析从程序中每个路径中的声明收集的所有的整型和布尔型等数据 |
统计引擎 |
用于分析代码作为一个整体的行为特征 |
过程间调用总结引擎 |
一个主要的创新,是的Prevent SQS可以执行整个程序的分析,分析文件间和模块间的热河层次的复杂的调用链 |
类型流程引擎 |
用于提高C++分析中依赖于类层次关系的报告的结果的精度 |
虚假路径引擎 |
用于分析每个分支条件,以确定在当前路径它将真、假、或不确定 |
加速引擎 |
保存横越每个路径时的每个缺陷分析所收集的信息。消除冗余路径,不需要横越任何不必要的路径来找到最多的缺陷 |
数据传播引擎 |
吧过程检调用总结引擎产生的所有总结和数据追踪引擎记录的所有数据汇总起来,是Coverity特有的、上下文敏感的过程检分析能力的关键 |
增量分析引擎 |
通过缓存分析数据来提高性能,以便后续的分析仅需要包含变化的数据 |
解决缺陷(C/C++)
- Prevent SQS内嵌的自动分发功能吧缺陷结果发给能够修复缺陷的开发人员和团队。
- 可处理的缺陷报告在几分钟内提供一个直观的界面和说明,而不是几小时或几天。
- 缺陷工作流程管理器帮助开发团队创建客户化的检测、分析、解决Prevent SQS报告的缺陷的流程。
- 每个缺陷的完整路径在源代码中被清洗的显示,开发人员能够快速追踪错误的根源。
- 缺陷的关键属性直接嵌入在源代码中,这样开发人员能够理解分析引擎用于检测错误的逻辑。
能够发现的C/C++缺陷
并发
- 死锁
- 错误使用的阻塞条用
性能下降
- 内存泄漏
- 文件句柄泄漏
- 定制的内存和网络资源泄漏
- 数据库连接泄漏
导致崩溃的缺陷
- 空指针引用
- 释放后引用
- 多次释放
- 不正确的内存分配
- 不匹配的数组新建、删除
不正确的程序行为
- 逻辑错误导致的死代码
- 未初始化变量
- 负数的无效引用
不正确的APIs使用
- STL使用错误
- API错误处理
C/C++安全性问题
安全编码缺陷
- 缓冲区溢出
- 整型溢出
- 缺失、不充分的恶意数据和字符串输入的验证
- 格式化字符串的不安全
- SQL注入攻击
- 交叉站点脚本攻击
隐含的缺陷
- 整个系统折衷
- 服务拒绝攻击
- 优先权扩张
- 保密数据泄露
- 数据丢失
- 仲裁代码执行
Coverity一般是部署在企业内部的,通过https页面的方式向程序员报告扫描的安全隐患。
Coverity多次检测同样的代码(两次之间,被检测的代码有改动),不会覆盖先前的报告,即第一次检测得到的report item number还是有效的,不会被新的报告覆盖,搜索它仍然可以查看先前检测出来的问题。
Coverity虽然很强大,但其实检测也是有缺陷的,毕竟它只是个辅助工具,不能完全达到人的水平,有时报的问题是误报。
By Urien 2021年3月23日10:37:51
【网络学习】Coverity代码检查工具详细介绍相关推荐
- eclipse代码检查工具-FindBugs介绍
1.FindBugs介绍 FindBugs是一款Java静态代码分析工具,与其他静态分析工具(如Checkstyle和PMD)不同,FindBugs 不注重样式或者格式,它专注于寻找真正的缺陷或者潜在 ...
- PMD【 Java 代码检查工具】入门使用教程(超详细)
PMD[ Java 代码检查工具] 介绍 使用方式 1.使用插件的方式 2.maven项目引入依赖的方式 3.pmd 命令行的方式 4.Java API的方式 * 项目结构 测试代码 pmdArgs方 ...
- coverity代码检测工具介绍_Coverity代码扫描工具
1.说明:Coverity代码扫描工具可以扫描java,C/C++等语言,可以和jenkins联动,不过就是要收钱,jenkins上的插件可以用,免费的,适用于小的java项目 2.这是Coverit ...
- 谷歌java安卓代码检查工具,Android Studio 代码检查工具介绍
前言 利用好相关代码检查工具,是一种自我的CodeReview,可以有效降低Bug率,提升自我的代码优化意识.常用的代码检查工具有AndroidStudio 自带的Lint工具. Alibaba Ja ...
- Sketch基础教程之文字工具详细介绍
Sketch 是最强大的移动应用矢量绘图设计工具,对于网页设计和移动设计者来说,比PhotoShop好用N倍!尤其是在移动应用设计方面,Sketch 的优点在于使用简单,学习曲线低,并且功能更加强大易 ...
- CSS代码检查工具stylelint
前面的话 CSS不能算是严格意义的编程语言,但是在前端体系中却不能小觑. CSS 是以描述为主的样式表,如果描述得混乱.没有规则,对于其他开发者一定是一个定时炸弹,特别是有强迫症的人群.CSS 看似简 ...
- 静态代码检查工具简介
静态代码检查工具简介 在 Java 软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷.传统的代码复审.同行评审,通过人工方式来检查缺陷仍然是一件耗时耗力的事情.Java 静态代码分 ...
- Python 常用静态代码检查工具简介
对于我这种习惯了 Java 这种编译型语言,在使用 Python 这种动态语言的时候,发现错误经常只能在执行的时候发现,总感觉有点不放心. 而且有一些错误由于隐藏的比较深,只有特定逻辑才会触发,往往导 ...
- Python静态代码检查工具Flake8
简介 Flake8 是由Python官方发布的一款辅助检测Python代码是否规范的工具,相对于目前热度比较高的Pylint来说,Flake8检查规则灵活,支持集成额外插件,扩展性强.Flake8是对 ...
- 静态代码检查工具 FindBugs
静态代码检查工具 FindBugs 使用 FindBugs的原因和方法 静态分析工具承诺无需开发人员费劲就能找出代码中已有的缺陷.当然,如果有多年的编写经验,就会知道这些承诺并不是一定能兑现.尽管如此 ...
最新文章
- Spring MVC入门
- Cosmos的基石:IL2CPU编译器--.net/C#开源操作系统学习系列三
- 盘点 | 假期里你错过的人工智能重要新闻有这些
- 【JavaSE】双向链表的实现与讲解
- 玻璃质感_他的玻璃质感让人佩服的五体投地
- 笔记-中项案例题-2019年下-信息系统安全管理
- php写浏览记录,php如何浏览历史记录
- 从github上克隆hibernate项目
- 微软将允许Epic Games等App登上微软商店
- 查看特定进程杀死进程方法
- jquery的validate表单验证表单注册插件
- panel items 添加指定位置_通过gitlab-ci自动添加prometheus业务监控
- 服务器的mp4文件是黑屏,Windows7的Windows media player 播放由影音制作生成的Mp4视频,出现黑屏、重启动...
- 1.2、logistic回归之极大似然法
- {黑科技}哔哩哔哩视频三倍速播放
- 2011年课外书 杂书总结感想
- 详述SpringMVC中数据类型转换器
- 【航线运输驾驶员理论考试】气象学
- OpenWRT 学习笔记 -- 用户自定义添加app的开机自启动
- 【windows10】 解决PPT不能播放视频