CppCheck的使用

简介: CppCheck的使用

一、 实验要求

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

1

二、 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. 自动变量检查

微信图片_20230701154227.png



2. 数组的边界检查

微信图片_20230701154225.png



3. Class类检查

微信图片_20230701154222.png



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


微信图片_20230701154219.png


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


微信图片_20230701154203.png


6. 内存泄漏检查


微信图片_20230701154159.png


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

微信图片_20230701154145.png


8. 异常STL函数使用检查

微信图片_20230701154013.png


9.代码格式错误检查


微信图片_20230701153957.png


四、 心得体会

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


相关文章
|
8月前
|
XML 安全 IDE
【C/C++ 实用工具】CppCheck:静态代码检测工具,让你的代码更安全
【C/C++ 实用工具】CppCheck:静态代码检测工具,让你的代码更安全
1303 2
|
Web App开发 编解码 Android开发
2023年音视频开发知识技术合集(基础入门到高级进阶)
2023年音视频开发知识技术合集(基础入门到高级进阶)
|
自然语言处理 iOS开发 C++
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
本文总结提炼了Alibaba.com App的瘦身的技术和策略,系统化地介绍APP瘦身的业务价值、分析技术、瘦身技术、防劣化机制,让读者可以系统化地了解APP瘦身的技术体系。并基于实践经验,介绍各种瘦身技术的ROI,让读者可以避免踩雷,将资源浪费在效果不佳的技术上。希望对你有所帮助。
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
|
4月前
|
自动驾驶 物联网 5G
深入探索5G网络中的网络切片技术及其应用场景
深入探索5G网络中的网络切片技术及其应用场景
1593 3
|
8月前
|
XML 算法 C语言
【C/C++ 静态代码检查工具 Cppcheck 】Cppcheck 检测器列表和检查规则大全一览
【C/C++ 静态代码检查工具 Cppcheck 】Cppcheck 检测器列表和检查规则大全一览
825 0
|
存储 弹性计算 网络安全
阿里云云计算专业认证考试(Alibaba Cloud Certified Professional,ACP)
认证介绍 阿里云云计算专业认证(ACP级-Alibaba Cloud Certified Professional)是面向使用阿里云云计算产品的架构、开发、运维类人员的专业技术认证,主要涉及阿里云的计算、存储、网络、安全类的核心产品。
|
2月前
|
测试技术 API 数据安全/隐私保护
Python连接到Jira实例、登录、查询、修改和创建bug
通过使用Python和Jira的REST API,可以方便地连接到Jira实例并进行各种操作,包括查询、修改和创建Bug。`jira`库提供了简洁的接口,使得这些操作变得简单易行。无论是自动化测试还是开发工作流的集成,这些方法都可以极大地提高效率和准确性。希望通过本文的介绍,您能够更好地理解和应用这些技术。
293 0
|
Linux 数据安全/隐私保护 Windows
更换(Pypi)pip源到国内镜像
pip国内的一些镜像 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.
242623 2
|
6月前
|
大数据 分布式数据库 Hbase
Hbase学习三:Hbase常用命令总结
Hbase学习三:Hbase常用命令总结
793 0
|
8月前
|
存储 编译器 C++
从Proto到C++:探索Protocol Buffers的强大转换机制
从Proto到C++:探索Protocol Buffers的强大转换机制
857 4