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

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

PC-lint Plus正式版


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

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

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

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

PC_LINT.0xportroject.Lntommand::PCLint8LINT-NT.EXErguments:linebuf(TargetName).dsp>$(TargetName).lntnitialirectory:(TargetDir)../pre>

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

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

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

在Initialirectory$(TargetDir)..表示在这个目录下执行此命令。

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

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

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

PC_LINT.0ornitheckCommand::PCLint8LINT-NT.EXEArguments:i"C:PCLint8"utd.lntnv-vc6.lnt(TargetName).lnt$(FilePath)"Initialirectory:(TargetDir).. 

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

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

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

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

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

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

PC_LINT.0orrojectheckCommand::PCLint8LINT-NT.EXEArguments:ffni"C:PCLint8"td.lntnv-vc6.lnt(TargetName).lntInitialirectory:(TargetDir).. 

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

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

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

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

相关内容推荐:

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


想要购买PC-lint Plus正版授权,或了解更多产品信息请点击【咨询在线客服】
标签:软件测试技术C/C++

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年9月24日
下一篇 2020年9月24日

相关推荐

发表回复

登录后才能评论