静态检查工具——PClint

简介:

  pc_lint是GIMPEL SOFTWARE公司开发的C/C++软件代码静态分析工具,它的全称是PC-Lint/FlexeLint for C/C++, pc_lint能够在Windows、MS-DOS和OS/2平台上使用,以二进制可执行文件的形式发布,而FlexeLint 运行于其它平台,以源代码的形式发布。 

  工具类型:静态工具。

  支持平台:Windows。

  使用方法:可配置到VS外部工具,也可以直接命令进行检查。

  输出文件:直接在VS输出窗口中输出。或者输出到文件

  查看问题:如果在VS窗口输出,双击报错行,可以直接跳转到问题代码位置。

检查范围:

  pc_lint不仅能够对程序进行全局分析,识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针以及冗余的代码,还能够有效地帮你提出许多程序在空间利用、运行效率上的改进点。从某种意义上说。 pc_lint是一种更加严格的编译器,它除了可以检查出一般的语法错误外,还可以检查出那些虽然符合语法要求,但很可能是潜在的、不易发现的错误。

pc_lint的注释:

   //lint -save -e***

  代码段;//带有error ***的告警信息

  //lint –restore

VS2005配置方法:

  1、首先,将获取到的pc_lint压缩包解压到C盘根目录,注意放到其他目录会导致pc_lint不好用。

  2、配置VS路径:打开pc_lint对VS的配置文件(C:\pclint\std_VS2005.lnt),配置好本地的VS路径,如下图所示。

  静态检查工具——PClint_第1张图片

  3、配置将要检测的本地代码路径:继续配置刚刚的文件(C:\pclint\std_VS2005.lnt),一键替换成要检测的本地代码路径。(此处很重要,每次进行工程检测时,都需要重新替换,保证检测的工程能对得上)

    4、修改检测规则配置:打开检测规则配置文件(C:\pclint\options.lnt),如下图:类型1代表当前的检测规则;类型2这种首位出现//的都算作是注释,和没写一样;类型3代表屏蔽的检测规则。

  静态检查工具——PClint_第2张图片

  5、将pc_lint配置到VS2005中:打开VS2005->工具->外部工具->添加

    工具1:(创建工程)

    标题:PC-lint (Project Creation)

    命令:C:\pclint\lint-nt.exe

    参数:-v -os("$(TargetName).lnt") "$(ProjectFileName)"

    初始目录:$(ProjectDir)

    勾选退出时关闭

    工具2:(对VS当前选中的单个文件进行Check)

    标题:PC-lint (Simple Check)

    命令:C:\pclint\lint-nt.exe

    参数:-i"c:\pclint" std_vs2005.lnt env-vc8.lnt "$(ItemDir)$(ItemFileName)$(ItemExt)"

    初始目录:$(ItemDir)

    勾选使用输出窗口

    工具3:(对VS当前选中的单个文件所在的工程目录下的所有文件进行Check)

    标题:PC-lint (Project Check)

    命令:C:\pclint\lint-nt.exe

    参数:-i"c:\pclint" std_vs2005.lnt env-vc8.lnt "$(TargetName).lnt"

    初始目录:$(ProjectDir)

    勾选使用输出窗口

  • 使用方法:

  1、首先,需要检查配置文件C:\pclint\std_VS2005.lnt是否是待检查的项目。

  2、检测单个文件:直接打开想检测的文件,再依次使用工具1,工具2即可。

  3、检测工程文件:直接打开工程中的任意一个文件,再依次使用工具1,工具3即可。

  4、贴士:检测过程中会同时对当前文件引用到的文件进行Check,所以有可能检测A文件,但是查出的是B文件的问题,这都是有可能的。

  • 查看问题:

  工程检测速度会比较慢,可以通过VS2005->工具查看是不是已经检测完成,未完成时会有“(停止)”的字样,所有工具都可以用这个办法来判断。

  检测结果全部都在输出窗口中,可以随时进行切换查看。  

  pc_lint输出窗口上有三个内容,下面来一一说明下:  

  1、检测输出的头:

  静态检查工具——PClint_第3张图片

  2、检测出的内容输出:

     有问题的地方会有error显示。

  3、检测输出的尾:输出结束的标志,同时也标志着所检测出的问题计数。

 

 

   左侧代表没有检测出问题,右侧代表检测出了16个问题。

 

命令检查方法:
  1、_lint压缩包解压到C盘根目录。
  2、进入cmd模式

  3、修改检测规则配置:打开检测规则配置文件(C:\pclint\options.lnt),配置方法和上面一致。

  4、检查文件:Lint-nt option 【文件绝对路径】

    例如:Lint-nt option /home/jierjiasi/code/dev/Main.cpp。结果会直接输出到cmd窗口中。

    Lint-nt option /home/jierjiasi/code/dev/*.cpp > LintOutput.txt【参考makefile】。结果输出到【LintOutput.txt】文件中
    Lint-nt option /home/jierjiasi/code/dev/*.h >> LintOutput.txt【参考makefile】。结果继续输出到【LintOutput.txt】文件中

  5、检查完成后可在输出文件或窗口中查看问题个数,并寻找error。

 

进阶版:自动化检查

  待续

 

你可能感兴趣的:(静态检查工具——PClint)