Pclint的适配以及使用方法
Pclint的适配以及使用方法
一. 简介
C/C++语言的语法拥有其它语言所没有的灵活性,这种灵活性带来了代码效率的提升,但相应也使得代码编写具有很大的随意性,另外C/C++编译器不进行强制类型检查,也不做任何边界检查,这就增加了代码中存在隐患的可能性。如果能够在代码提交测试之前发现这些潜在的错误,就能够极大地减轻测试人员的压力,减少软件项目的除错成本,可是传统的C/C++编译器对此已经无能为力,这个任务只能由专用的代码检查工具完成。有很多C/C++静态代码检查工具,其中Logiscope RuleChecker和PC-Lint 是应用比较广泛的两个工具。
更加详细的介绍,可以参加百度百科:PC-lint_百度百科 (baidu.com)
二. Pclint在SourceInsight上的配置
正常的公司内网中已经存在pclint的工程文件,若是在本地不存在pclint的工程文件,在网上下载即可。下载以及安装完成的pclint工程文件如下所示:
其中最重要是的标记为黄色的三个文件:CONFIG.exe表示的是具体pclint安装时候的配置程序;PC-lint.pdf文档中记录了各种pclint的规则以及错误的类别,对于修改pclint缺陷是很重要的;lint-nt.exe是具体的需要执行的程序,会在使用的时候被调用。
明确一个原理:在SourceInsight上集成pclint操作,实际就是通过SourceInsight调用cmd命令来执行pclint的可执行文件“CONFIG.exe”。
下面来看一下在SourceInsight上集成新的指令的步骤:
(1) 在SourceInsight下面点击Tools命令
点击Custom Commands进行新指令的添加。
(2) 子菜单点击Add进行指令的添加
点击Add按钮,可以添加新的指令。
(3) 添加什么样子的指令
选择Add按钮后,可以添加需要的指令名字,这里定义的文件名字是pclint。主要需要勾选的位置如图中的显示。
在“Run”的选项上,需要填写具体需要执行的指令。在“Dir”的选项上,填写需要的目录。
这里针对自定义的“pclint”指令,填写的指令分别是:
Run:
D:\3_pclint\pclint\lint\lint-nt.exe –iD:\3_pclint\pclint\uefi_lnt –u D:\3_pclint\pclint\uefi_lnt\std.lnt env-si.lnt D:\3_pclint\pclint\uefi_lnt\std_proj.lnt
Dir:
D:\3_pclint\pclint\uefi_lnt
这里需要解释一下各个参数的意义。参数“D:\3_pclint\pclint\lint\lint-nt.exe”表示的是可执行程序,带有目录的去执行,只有这样在cmd下面才能被找到; “-i”表示指定配置参数文件所在的目录,这个目录下面的文件就是我们上传到git上的所有文件,也就是目录“D:\3_pclint\pclint\uefi_lnt”;“-u”选项后面跟随的是pclint最基础的配置文件,也就是“D:\3_pclint\pclint\uefi_lnt\std.lnt”,文件“env-si.lnt”是pclint的环境配置相关的配置文件。由于前面的第一个配置文件已经指明了路径,后面的配置文件可以默认不带路径信息,当然带上路径信息也没有关系。
“D:\3_pclint\pclint\uefi_lnt\std_proj.lnt”参数指定了需要进行pclint检测的所有文件。
配置文件文件“env-si.lnt”是否一定要跟上,答案是“是的”。在不指定这个配置文件的时候,运行出来的pclint也能正常检测,但是无法进行跳转,如下:
正常的pclint检测结果,如下所示:
进行单个文件检测的pclint配置:
Run:
D:\3_pclint\pclint\lint\lint-nt.exe –iD:\3_pclint\pclint\uefi_lnt –u D:\3_pclint\pclint\uefi_lnt\std.lnt env-si.lnt %f
Dir:
D:\3_pclint\pclint\uefi_lnt
与进行整体检测唯一的不同就是将“D:\3_pclint\pclint\uefi_lnt\std_proj.lnt”换成“%f”
(4) 将指令放在指定的位置
完成指令的编辑后,点击Menu按钮:
在下拉菜单上选择需要将新的指令存放的位置:
选择号菜单后,按下Insert按键,完成指令的放置
三. Pclint问题的排查
对于Pclint文件,所有的配置文件,最基础的就是std.lnt这个文件。
对于要整个工程文件中需要包含的其他配置文件,可以在这里直接被只用。需要用的头文件使用-i加上文件路径,需要屏蔽到的缺陷使用-e将错误号(具体可以在options.lnt文件中进行添加)。
当检测到pclint问题,可以直接跳转到问题的位置,对于不知道的问题,直接查找PC-lint.pdf文档即可。