静态分析工具PC-lint Plus使用教程:使用方法-如何集成到VC中

转帖|使用教程|编辑:况鱼杰|2020-10-27 10:18:12.443|阅读 165 次

概述:本文介绍了PC-lint Plus的使用方法:集成到IDE-如何集成到VC中。​

# 31款JAVA开发必备控件和工具 # 企业数字化建设合规无风险[专题]

相关链接:

PC-lint Plus是一种静态分析工具,通过分析C和C ++源代码来发现软件中的缺陷。与编译器一样,PC-lint Plus会解析源代码文件,执行语义分析,并构建一个抽象语法树来表示程序。PC-lint Plus采用各种机制,包括数据流分析,数值跟踪,读写分析,强类型检查,功能语义验证和许多其他技术,来提供对单个文件和整个项目强大而全面的分析。

本文介绍了PC-lint Plus的使用方法:集成到IDE-如何集成到VC中。

点击下载PC-lint Plus正式版


在集成开发环境中,PC-Lint 8.0对VC++6和VC++7.0的支持是最完善的,支持直接从VC的工程文件(VC6是*.dsp,VC7是*.vcproj)导出对应工程的.Lnt文件,此文件包含了工程设置中的预编译宏,头文件包含路径,源文件名,无需人工编写工程的.Lnt文件。

下面是集成到的VC6中的tools设置说明,参见C:\Lint8\lnt\env-vc6.lnt中的注释。

导出当前工程的.lnt文件(用来导出工程设置和源文件名,头文件包含路径),下面的对话框点击菜单的Tools->Customize->Tools可以看到。


PC_LINT 8.0 Export Project.Lnt 
Command: C:\PCLint8\LINT-NT.EXE 
Arguments: +linebuf $(TargetName).dsp>$(TargetName).lnt 
Initial directory: $(TargetDir)\.. 

当修改过工程设置中的头文件包含路径、预编译宏或新增源文件后,需要重新导出工程的lnt文件,否则修改后的设置无法自动体现在工程的lnt文件中。

以上设置只要修改Command中的Lint-nt.exe所在路径即可。执行过这个命令后,$(TargetName).lnt被放到$(TargetName).dsp所在目录中($(TargetDir)\..下),如果成功,打印出的返回值为0,如果失败则返回非零值,具体出错信息需查看$(TargetDir)\..\ $(TargetName).lnt文件内容。

其中$(…)的字串为VC的参数宏,调用工具命令时VC将它们替换为对应的字符串。$(TargetName)为当前激活的工程名(通过菜单Project->Set Active Project设置当前激活工程,或在WorkSpace的工程树上右键对应的工程选择Set as Active Projec),$( TargetDir)为当前激活工程输出目标文件所在路径(一般缺省为工程所在目录下的Debug或Release目录),具体参数宏的含义说明参考MSDN中的VC的使用指南。

在Initial directory 的$(TargetDir)\..表示在这个目录下执行此命令。

注:参数+linebuf表示加倍行缓冲的大小,最初是600 bytes。行缓冲用于存放当前行和你读到的最长行的信息。

检查当前激活工程中当前窗口中的源文件。


PC_LINT 8.0 For Unit Check 
Command: C:\PCLint8\LINT-NT.EXE 
Arguments: -i"C:\PCLint8" -u std.lnt env-vc6.lnt $(TargetName).lnt "$(FilePath)" 
Initial directory: $(TargetDir)\.. 

注意这一步最容易出错误。与之前路径不同,会出现找不到头文件的路径的情况

执行此命令前提是$(TargetDir)\..目录下已经有工程的$(TargetName).lnt文件,这个文件在步骤1中生成。

第一个参数-i"C:\PCLint8"为lint搜索*.lnt文件的目录,这里就是我们的配置路径。

std.lnt就是前面配置过程中生成编译环境的配置文件,如果有需要支持多个编译环境,可以直接改成对应的配置文件名,例如这里可以改为std_a.lnt,表示使用std_a.lnt中所配置的编译环境设置。

最后一个参数"$(FilePath)"就是当前窗口中的带路径的源文件名。需要注意的是,当前窗口中打开的源文件一定要属于当前激活的工程,否则lint可能会出错。
检查当前激活工程中的所有源文件。

PC_LINT 8.0 For Project Check 
Command: C:\PCLint8\LINT-NT.EXE 
Arguments: +ffn -i"C:\PCLint8" std.lnt env-vc6.lnt $(TargetName).lnt 
Initial directory: $(TargetDir)\.. 

执行此命令前提是$(TargetDir)\..目录下已经有工程的$(TargetName).lnt文件,这个文件在步骤1中生成。

此命令把$(TargetName).lnt中所包含的源文件lint一遍,如果工程比较大的话,一般输出的内容会超过VC的输出窗口的缓冲区大小,导致只能看到后面一部分Lint的信息,可以把Arguments改为 +ffn -i"C:\PCLint8" std.lnt env-vc6.lnt $(TargetName).lnt>$(TargetName).txt

把结果输出到一个名为$(TargetName).txt的文件里。

注:参数中的+ffn表示Full File Names,可被用于控制是否使用的完整路径名称表示。

本文内容就是这样了,希望对您有所帮助!您可以继续关注我们慧都网,了解更多产品资讯~也可以下载PC-lint Plus试用版免费评估~

相关内容推荐:

PC-lint Plus v1.3.5更新内容>>>


想要购买PC-lint Plus正版授权,或了解更多产品信息请点击【咨询在线客服】

标签:测试C/C++

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至hey@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
在线咨询
联系我们
TOP
在线客服系统
live chat