1. 概述
静态程序分析是指使用自动化工具软件对程序源代码进行检查,以分析程序行为的技术,应用于程序的正确性检查、安全缺陷检测、程序优化等。它的特点就是不执行程序,有助于在项目早期发现以下问题:变量声明了但未使用、变量类型不匹配、变量在使用前未定义、不可达代码、死循环、数组越界、内存泄漏等。
静态分析工具相比编译器,对代码进行了更加严格的检查,像数组越界访问、内存泄漏、使用不当的类型转换等问题,都可以通过静态分析工具检查出来,我们甚至可以在分析工具的分析标准里定义代码的编写规范,在检测到不符合编写规范的代码时抛出告警,这些功能都是编译器没的。
编译器负责把C源程序快速、高效地转变为可执行文件,不对代码做类型检查(特别是对分别编译的程序),有益于做到快速与高效。而Lint没有“高效”的要求,可以花更多时间对代码进行更深入、仔细的检查。”
2. 工具简介
(1)下载安装(Linux)
官方网址:http://sourceforge.net/projects/cppcheck/
(2)安装方式:解压后,直接make进行编译,完成后,make install进行安装
(3)验证安装:cppcheck -v 查看是否安装成功
(4)特点介绍
主要检查编译器通常不能发现的缺陷。
cppcheck能够发现很多错误,但不能发现所有的错误。
3. 基本使用
(1)检查单个文件:cppcheck foo.c
(2)检