一、 实验要求

明白CppCheck的配置及原理,并使用CppCheck进行代码缺陷的检查,进行总结。

二、 CppCheck的原理介绍

1、Cppcheck先是分析拆解代码,将每个有效字符作为一个token(token是抽象代码中所有字符的
类,包含字符的字符串,类型等),提供tokenlist,规则实现者通过匹配需要的字符找到感兴趣的代
码,然后通过计算查找bug注意点:其中Cppcheck会做预处理和简化代码的操作,比如include头文件,
展开宏,在每一个token直接用一个空格分隔等。2. 开发中使用主要的类有:
(1)Tokenizer类: 代码token化, 计划代码
(2)SymbolDatabase类:符号数据库,生成和存储各种符号:scope,function, variable等
(3)Scope类: 各种代码block。最常用的有functionScopes, classAndStructScopes等
(4)Token类: 里面有str(), next(), previous(), tokAt(), link(),Match()等常用函数
(5)Variable类:getTypeString()
(6)Function类:可以找到实现的scope
(7)Value类: token可以通过getValue()得到可能的值3. 作为编译器的一种补充检查,cppcheck对产品的源代码执行严格的逻辑检查。 执行的检查包括:
(1)自动变量检查
(2)数组的边界检查
(3)class类检查
(4)过期的函数,废弃函数调用检查
(5)异常内存使用,释放检查
(6)内存泄漏检查,主要是通过内存引用指针
(7)操作系统资源释放检查,中断,文件描述符等
(8)异常STL 函数使用检查
(9)代码格式错误,以及性能因素检查

三、 CppCheck的使用

1.   自动变量检查

2.   数组的边界检查

3.   Class类检查

4.   过期的函数,废弃函数调用检查

5.   异常内存使用,释放检查

6.   内存泄漏检查

7.   操作系统资源释放检查


8. 异常STL函数使用检查

10.  代码格式错误检查

四、 心得体会
经过一段时间的学习,对CppCheck进行了了解和学习,并且使用它进行了各种对应的测试,在这个过程中,自己的一些方面有了进步,比如软件的安装配置,软件的使用,代码的编写等,每一个不同的实验都能带来不同的成长,感谢老师在课堂上大量的提问的方式,同样使我学到了很多,对软件测试有了一些自己的想法,并且通过紧张的提问,很容易的就记住了这门课的知识,对做实验有所帮助。

CppCheck的使用相关推荐

  1. Ubuntu下安装Cppcheck源码操作步骤

    Cppcheck是用在C.C++中对code进行静态检查的工具.它的源码在  https://github.com/danmar/cppcheck .它的License是GPL-3.0. Cppche ...

  2. cppcheck源码学习(一)

    今天整理了下cppcheck的源码结构,为什么通过写一个个子文件就能够扩展cppcheck的功能呢? 看了下代码,并通过简化代码,略懂一二了. 首先我们定义一个基类test.h,只定义一个头文件足够: ...

  3. 在VS2012中安装使用cppcheck

    1.从官网上下载安装cppcheck 2.在VS2012中配置cppcheck 工具->外部工具->添加 如下图所示 3.使用的时候可以直接在工具栏看到已添加的cppcheck 转载于:h ...

  4. Ubuntu16.04下面的vs code出现Unable to activate CppCheck analyzer

    Ubuntu16.04下面的vs code出现Unable to activate CppCheck analyzer 解决方案: synaptic管理器中安装cppcheck和cppcheck-gu ...

  5. cppcheck值得注意的一些筛选项

    使用完cppcheck进行C++代码检测之后,可能筛选起来很麻烦,一般常见的优化有 emptiness,就是当你使用stl的时候,最好用empty替代size 还有就是 leak

  6. cppcheck的安装和使用

    首先从这里下载linux版本的:http://sourceforge.net/projects/cppcheck/files/cppcheck/ 然后下载对应的版本,解压,之后安装: 编译: g++ ...

  7. Cppcheck 1 54 C/C++静态代码分析工具

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Cppc ...

  8. 使用cppcheck检测代码警告、错误

    cppcheck是一个C/C++静态检查工具.它可以帮助我们检测出代码存在(潜在)的问题,比如数组越界.内存申请未释放.文件打开未关闭.注意,cppcheck不是编译器,替代不了gcc. 在ubunt ...

  9. eclipse安装cppcheck

    简介: cppcheck 是一个 c 和 c++ 的静态的代码检查分析工具,不用运行程序就可以进行代码的检测. 可以检测一般的内存泄漏和程序编码错误 0.安装 cppcheck 1.57版本,这个版本 ...

  10. windows上cppcheck检查不出任何错误解决

    今天在windows上测试cppcheck时,发现一个全是错的c文件仅一个问题检查不出来,,但在linux上却能检查出来,很是遗憾.这是测试文件 #include <stdio.h> #i ...

最新文章

  1. NBT-新年4篇35分文章聚焦宏基因组研究
  2. 全球AI初创公司去年融资创新纪录:总额逾266亿美元超2200笔交易
  3. 安装和使用Smokeping(二)
  4. 确保nginx安全的10个技巧
  5. HDU2199,HDU2899,HDU1969,HDU2141--(简单二分)
  6. 使用swagger编写开发接口文档
  7. 数据结构与算法(二):堆,大根堆,小根堆,堆排序,比较器详解
  8. 解题报告——蓝桥杯 试题 基础练习 字符串对比——16行代码AC
  9. 消息(6)——WCF,构建简单的WCF服务,MTOM编码
  10. jqprint控件使用
  11. yolov3前向传播(一)-- darknet53网络解析与实现
  12. ubuntu查看 固态硬盘位置_Linux的硬盘使用情况、挂载、SSD挂载(查看df -h不能看到的卷)...
  13. android 可拖拽View的简单实现
  14. 无法解析com.oracle:ojdbc14:XXXXX问题解决方案
  15. Oacle删除后注删表及其残留删除
  16. python画画excel_用Python在Excel里画出蒙娜丽莎的方法示例
  17. 天眼查企业工商信息查询接口
  18. Mybatis XML文件属性配置
  19. JDK1.8 Collection知识点与代码分析--TreeMap
  20. 修改苹果自带地图中的路线颜色

热门文章

  1. 用matlab求roc曲线的面积Auc,sklearn计算ROC曲线下面积AUC
  2. 织梦dedecms响应式抖音培训课程新闻资讯类网站模板(自适应手机移动端)
  3. python如何写简历_python简历—你可以这么写!
  4. UltraCompare官方网站
  5. SEO快速排名是什么,百度快速排名软件还有用吗?
  6. 手机浏览器查看控制台
  7. Java获取指定时间前一小时、后一小时的时间
  8. Keil出现出现File “C:\Users\????\AppData\Local\Temp\pxxx-2报错
  9. ckeditor4 使用总结
  10. 二等分计算机打印机尺寸,241两等分打印纸尺寸 电脑打印纸,规格241mm等份是2等份,是多大的纸呀?...