PCLINT代码静态测试工具 下载本文

内容发布更新时间 : 2025/2/25 18:29:26星期一 下面是文章的全部内容请认真阅读。

最近学习了静态测试工具pclint,觉得它的功能很强大,可以检查出编译器发现不了的逻辑错误,还可以与Source Insight\\VC集成,这里先推荐网上的两篇文章,讲述的非常好,完全可以跳过不看以下的介绍.工具的使用很简单,需要实际使用过程逐步地积累经验,了解LOG控制参数,和错误信息的含义.

第一篇详细地讲述了PCLINT的入门到深入,有详细的例子

http://www.360doc.com/content/10/0323/15/610539_19931453.shtml 第二篇比较简单地介绍了入门遇到的问题,例如如何配置std.lnt: http://hi.http://www.35331.cn//denglei99/blog/item/8d4be12465024b318744f9e9.html

第三篇是PCLINT软件包中自带的帮助文档,很全面,但是英文版本的,第一篇文章很多内容是从这里直接翻译过去的。在软件包中的C:\\PCLint8\\pc-lint.pdf,主要是关注17章的错误码的描述.

一、 PCLINT的优点

PC-Lint则偏重于代码的逻辑分析,它能够发现代码中潜在的错误,比如数组访问越界、内存泄漏、使用未初始化变量等,它的检查主要涉及到如下:强类型检查、变量值跟踪、赋值顺序检查、弱定义检查、格式检查、缩进检查、const变量检查、volatile变量检查等。

PC-Lint的错误信息很有规律,也可以通过添加语句的方式来屏蔽不必要的信息。下面是PC-Lint错误码分布情况:

错误说明 C C++ 告警级别 语法错误 1-199 1001-1199 1 内部错误 200-299 0 致命错误 300-399 1400-1699 0 告警 400-699 2 消息 700-800 1700-1899 3 可选信息 900-999 1900-1999 4

PC-Lint的检查分很多种类,有强类型检查、变量值跟踪、语义信息、赋值顺序检查、弱定义检查、格式检查、缩进检查、const变量检查和 volatile变量检查等等。对每一种检查类型,PC-Lint都有很多详细的选项,用以控制PC-Lint的检查效果,屏蔽不必要的信息。PC-Lint的选项有300多种,这些选项可以放在注释中(以注释的形式插入代码中),例如: /*lint option1 option2 ... optional commentary */ 选项可以有多行

//lint option1 option2 ... optional commentary 选项仅为一行(适用于C++) #include

//lint -esym(644,a) -passes(3) -w3 -wlib(0) -t4 二、 PC-Lint与Source Insight的集成

PC-Lint与source insight的集成也是通过添加定制命令实现的,从“Options”菜单中选择“Custom Commands”命令项。点击“Add?”按钮,如图所示,在弹出的“Custom Commands”窗口中完成以下输入:

在Name栏中输入“pclint”,这个名称可以随便起。

在Run栏中输入“C:\\PCLint8\\lint-nt -i\”其中C:\\PcLint8是你

PC-LINT的安装目录,std.lnt表示为Source Insight定制的配置文件std.lnt, -i指明包含路径,-u指明使用哪些.lnt文件,%f是具体检查的文件名

在Output栏中选择“Iconic Window”、“Capture Output”选项; 在Control栏中选择“Save Files First”;

在Source Links in Output栏中选择“Parse Links in Output”、“File,then Line”; 在Pattern栏中输入“^\\([^ ]*\\) \\([0-9]+\\)”;

点击Menu,里面可以给这个新加的命令添加快捷键。

三、 PC-Lint运行配置文件std.lnt

在运行的命令中“C:\\PCLint8\\lint-nt -i\”有个std.lnt文件,这个配置文件定义了PC-Lint的运行环境,例如以下内容: // Microsoft Visual C++ 6.x (co-msc60.lnt co-msc60.lnt //VC

-i\

-i\ -i\ //统一支付

-i\统一支付平台\\V1.0R040\\D002\%uniform_pay_src_V1.0R040\\include\ -i\统一支付平台\\V1.0R040\\D002\%uniform_pay_src_V1.0R040\\comm\

co-msc60.lnt是选择VC为编译器,这个配置文件是系统自带的,对VC定义了控制错误提示信息的规则。 -i参数是需要的头文件