Klocwork 版本:2017.3
缺陷规则配置文件以 .pconf 为后缀,用来配置哪个规则要启用,那个规则要关闭。
在 server 端,pconf 配置文件有两类:
(1)
/projects/workspace/rules/analysis_profile.pconf
作用:创建新项目的时候,将此文件复制到项目的规则目录
/projects/
/rules 下。相当于新建项目的缺省设置;
(2)
/projects/
/rules/analysis_profile.pconf
作用:项目的规则设置
两者的关系:
(2)是从(1)复制过来的,但此后就再无关系,各自修改不会影响对方。
在Desktop端,也有两个位置:
(1)本地的 pconf 文件位于:
.kwps\localconfig\profiles\analysis_profile.pconf,用于存储Desktop项目本地设置。
(2)第二个位置是当Desktop设置了与Server同步,那么Desktop项目从Server项目下载 pconf 文件,并保存在 \.kwps\servercache\analysis_profile.pconf
所以,Desktop如果设置了同步用(2),如果没设置同步用(1)。
然后,说如何设置。
最简单的设置,就是在界面上勾选。Server端:
或者使用 kwconfigeditor
Desktop 端用:
勾选完,保存。在上面所说的可以找到所保存的文件。
重要的一点要说的是,保存的 pconf 配置文件是基于缺省配置设置的增量。也就是说,是基于缺省配置设置的修改的内容。
那么缺省设置在哪里呢?应该说是设置在产品中了,位置是:
C/C++规则:/plugins/builtin_ccxx_plugins.xml,里面能看的就是缺省设置:
Java规则缺省设置在 /class/jdefects.jar 里面。
C#规则缺省设置在 /class/builtin_csharp_plugins.xml 里面。
也就是说,勾选所作的修改,是对缺省设置的改变量。
另一个话题:如何修改规则的严重等级:
这需要在Sever端,用 kwconfigeditor ,如图:
这些.pconf 文件可以复制到其他计算机,给其他 Server 或者 Desktop 项目使用。
如何应用在其他服务器或项目呢:
在Server端,使用 kwadmin import-config
注意:一定要用 kwadmin 导入到项目,不能单纯复制过去,否则,你必须重启KW 服务器才能生效。
在Desktop端,使用 kwcheck import
如果您做好了一个 pconf 文件,里面只有您想要启用的规则,或者说,您不希望增量,只想启用文件里面的规则,该怎么办呢?
那就用上述修改pconf 文件的方法,做一个禁用所有规则的空配置文件:
kwconfigeditor null.pconf
然后,先导入 null.pconf,再导入您想设置的pconf. 就行编程序的时候,用memset 做个初始化,然后再写入想要的东西。
kwadmin import-config afd null.pconf
kwadmin import-config afd my_pconf.pconf
当然,一般的 pconf 规则文件共享就不存在初始化的问题,直接复制过去 kadmin import-config 就没有问题的。
领取专属 10元无门槛券
私享最新 技术干货