软件测试实验学习笔记系列2 -- lint,splint的使用

本文介绍了代码静态分析工具Splint的历史、功能,以及如何在Linux和Windows上安装。Splint能够检查C语言程序的安全弱点和错误,如未使用变量、类型不一致等问题。文章详细阐述了Splint的命令、应用实例,如错误检查控制、类型错误和内存检查,强调了Splint在代码质量保障中的作用,并提到其可集成到IDE和makefile中。
摘要由CSDN通过智能技术生成

lint简史

1979年,贝尔实验室SteveJohnson1979PCC(PortableCCompiler)基础上开发的出了代码分析工具Lint,可以检查出很多的不符合规范的的错误(如将“==”写成了“=”)以及函数接口参数不一致性的问题等,完成代码健壮性的检查。Lint后来形成了一系列的工具,包括PC-Lint/FlexeLint(Gimpel),LintPlus(Cleanscape)以及Splint.

功能

通常C/C++编译器假设程序是正确的,Lint恰好相反,因此它有优于编译器执行的一般性的代码检查。Lint还可以在多个文件之间执行错误检查和代码分析。下面是一些Lint可以检查出来的部分的错误列表:

  • 可能的空指针

  • 在释放内存后使用了指向该内存的指针

  • 赋值次序问题

  • 拼写错误

  • 0

  • 失败的case语句(遗漏了break语句)

  • 不可移植的代码(依赖了特定的机器实现)

  • 宏参数没有使用圆括号

  • 符号的丢失

  • 异常的表达式

  • 变量没有初始化

  • 可疑的判断语句(例如,if(x=0))

  • printf/scanf的格式检查

现有的Lint程序主要有两个版本:①PC-Lint,GimpelSoftware提供的支持C/C++的商用程序。官方地址:http://www.gimpel.com/html/pcl.htm②Splint(原来的LCLint)是一个有GNU免费授权的Lint程序,只支持c,而不支持c++.官方地址:http://www.splint.org/

由于PC-lint是商业软件,虽说功能强大,但是容易获取。这里主要介绍GNUsplint工具。

开源的代码静态分析工具Splint

Splint是一个动态检查C语言程序安全弱点和编写错误的一个程序,会进行多种错误检查:未使用变量,类型不一致,使用未定义的变量,无法执行的代码,忽略返回值,执行路径没有返回,无限循环等错误。

官方网站:http://www.splint.org/

Splint的安装

1.Linux下的安装

1.1rpm安装:

rpm -ivh splint.xxx.rpm

rpm安装包是著名的Linux发行商Redhat推出的基于源代码的软件包方式。这种安装方式的缺点是如软件依赖项有很多并且你没有安装那些依赖项时,哈哈,恭喜你,你有事忙了,需要满互联网的找到那些依赖项并安装好;如果依赖项还有依赖项并且你又没有安装,我只能说,哥们你中彩了。

1.2Ubuntu或者Debian下安装

sudo apt-get install splint

这种安装最省事,唯一的缺点是,安装的软件的版本可能不是最新的,以及总是按照默认的配置来安装的软件的---不够灵活

1.3源代码安装(通用)

tar -zxvf splint-3.1.2.src.gz

cd splint-3.1.2

./configure

make

make install

2.window下安装

可以使用源代码安装的方式.最新的官网提供了window下的软件安装包(msi格式),地址是:https://github.com/maoserr/splint

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值