在众多静态代码分析工具中,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 +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...
执行splint null_dereference.c命令,将产生以下告警消息: null_dereference.c: (in function func_null_dereferences) null_dereference.c:5:10: Dereference of null pointer a: *a A possibly null pointer is dereferenced. Value is either the result of a function which may return null (in which case,...
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) ...
//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)...
splint是一个静态检查C语言程序安全弱点和编写错误的工具。splint会进行多种常规检查,包括未使用的变量,类型不一致,使用未定义变量,无法执行的代码,忽略返回值,执行路径未返回,无限循环等错误。同时通过在源码中添加注记给出的附加信息,使其可以进行功能更加强大的检查。而注记,则是对文件中的函数、变量、参数以及...
Ubuntu系统下C语言代码检查工具(Splint)看⼀下下⾯的代码(当然包括错误,以检验splint的功能): #include int main(int argc,char* argv[]){ int a=100; /*没有使⽤的变量*/ int b[8]; printf("Hello c\n"); b[9]=100; /*明显数组越界 */ /* ⽤到了两个...
NAME cppcheck - Simple syntax checking of C/C++.SYNOPSIS cppcheck [--all] [--append [file]] [--auto-dealloc [file]] [--enable=[id]] [--error-exitcode=[n]] [--force] [--help] [-I[dir]] [-j[jobs]] [--quiet] [--style] [--suppressions [file]...
splint是一个GNU免费授权的 Lint程序,是一个动态检查C语言程序安全弱点和编写错误的程序。Splint会进行多种常规检查,包括未使用的变量,类型不一致,使用未定义变量,无法执行的代码,忽略返回值,执行路径未返回,无限循环等错误。 链接:https://pan.baidu.com/s/1kiufqPElB1zlEv05ZdwiGA 密码:xjyb ...