在众多静态代码分析工具中,Splint凭借其对C语言的深刻理解和丰富的功能集脱颖而出。与市场上的其他工具相比,如Clang Static Analyzer、PVS-Studio等,Splint更专注于C语言的细节,尤其是在检测未使用的变量、内存管理和数组越界等方面表现优异。然而,Clang Static Analyzer作为LLVM项目的一部分,拥有更广泛的社区支持和更快...
Splint3.1.2---11Oct2015// 给出告警所在函数名,在函数的第一个警告消息报告前打印;splint_msg.c:(infunction func_splint_msg1)// 消息的正文,文件名、行号、列号显示在的警告的正文前;splint_msg.c:4:6:Variablea declared but not used// 有关该可疑错误的详细信息,包含一些怎样去掉这个消息的信息;A ...
splint是一个GNU免费授权的 Lint程序,是一个动态检查C语言程序安全弱点和编写错误的程序。Splint会进行多种常规检查,包括未使用的变量,类型不一致,使用未定义变量,无法执行的代码,忽略返回值,执行路径未返回,无限循环等错误。 链接:https://pan.baidu.com/s/1kiufqPElB1zlEv05ZdwiGA 密码:xjyb 安装:后期可根据需...
不对这个例子进行详细检查,可能我们不能发现其中隐含的问题,执行splint +bounds bounds2.c之后,会抛出如下告警: bounds2.c: (infunction bounds2) bounds2.c:7:3: Possibleout-of-bounds store: strcpy(str, tmp) Unable to resolve constraint: requires maxSet(str @ bounds2.c:7:10) >= maxRead(getenv...
//null.c char firstChar1 (/*@null@*/ char *s) { return *s; } char firstChar2 (/*@null@*/ char *s) { if (s ==NULL) return '\0'; return *s; } //END 使用splint扫描这个程序时,会输出: # splint null.c Splint 3.1.1 --- 28 Apr 2005 null.c: (in function firstChar1)...
1//splint_msg.c 2intfunc_splint_msg1(void) 3{ 4inta; 5return0; 6} 7intfunc_splint_msg2(void) 8{ 9int*a=(int*)malloc(sizeof(int)); 10a=NULL; 11return0; 12} 运行splint splint_msg.c之后,我们来看输出的告警信息: splint_msg.c: (in function func_splint_msg1) ...
1//splint_msg.c 2intfunc_splint_msg1(void) 3{ 4inta; 5return0; 6} 7intfunc_splint_msg2(void) 8{ 9int*a=(int*)malloc(sizeof(int)); 10a=NULL; 11return0; 12} 运行splint splint_msg.c之后,我们来看输出的告警信息: splint_msg.c: (in function func_splint_msg1) ...
PC-Lint是⼀款针对C/C++语⾔、windows平台的静态分析⼯具,FlexeLint是针对其他平台的PC-Lint版本。由于PC-Lint/FlexeLint是商业的程序分析⼯具,不便于⼤家对其进⾏学习和使⽤,因⽽下⾯我将介绍⼀个针对C语⾔的开源程序静态分析⼯具——。2.静态程序分析 先来说说什么是“静态程序分析(...
Ubuntu中C代码静态检查工具Splint的安装配置和使用 1、从http://www.splint.org/download.html下载splint-3.1.2.src.tgz,存放到/home/spring/Splint文件夹下; 2、打开终端; 3、解压缩:tar zxvfsplint-3.1.2.src.tgz 4、安装到/usr/local/splint目录下:...
splint是一个静态检查C语言程序安全弱点和编写错误的工具。splint会进行多种常规检查,包括未使用的变量,类型不一致,使用未定义变量,无法执行的代码,忽略返回值,执行路径未返回,无限循环等错误。同时通过在源码中添加注记给出的附加信息,使其可以进行功能更加强大的检查。而注记,则是对文件中的函数、变量、参数以及...