Linux 测试软件各种工具指南(1)


Lint能够检查的部分错误列表:可能的空指针;在释放内存之后使用了该指针;赋值次序问题;拼写错误等。通常,一个C/C++的编译器假设程序是正确的,而Lint恰恰相反,因此,它优于编译器执行的一般性检查。Lint还可以贯穿多个文件来执行它的错误检查和代码分析,这是编译器做不到的。比较流行的Lint 程序有:PC-lint是一个由Gimpel Software提供的支持C/C++的商用程序;Splint (原来的 LCLint) 是一个GNU免费授权的 Lint程序,但是只支持C不支持C++。

运行 Lint时,和正常的编译器一样,只要把直接加入的makefile 中就可以了。通过配置选项、代码注释等方法可以控制和校准Lint的输出。例如,这里有一个返回NULL指针的函数,Splint可以通过下面的注释 /*@null@*/ 来识别:
 

  1. /*@null@*/ void *test(void)  
  2. {  
  3. // a function that returns NULL!  
  4. return NULL;  
  5. }  

这样做有两个目的:防止Splint为这个返回Null指针的函数告警;保证Splint 检查任何调用该函数的代码中使用该函数的返回指针是有效的。

3)Flawfinder

Flawfinder 是一款用Python编写的c、c++程序安全审核工具,可以检查潜在的安全风险。它通过搜索检测文件源代码从而得到潜在的安全漏洞,支持检测数据库,以HTML格式生成报告。


相关内容

    暂无相关文章