【回眸】QAC软件指南——萌新使用篇
前言
真没想到用的这个QAC版本这么古老,看到这个UI秒回18年前
安装
这个不加赘述,去公众号找资源或者公司有正版软件就使用正版软件。
QAC软件结构(仅作了解)
prqaproject.xml :文件保存工程相关信息
config :包含工程各配置文件,如 cct 、 acf 、 rcf 等。
output 按照代码层次创建文件夹,保存分析后输出文件。
reports :保存生成的报告文件
src\lib…:相关代码文件夹,可手动或通过同步导入(保持其结构)
验证License
这个需要在创建工程之前验证License是否可用,否则就算导入文件成功也没法分析,如果是
创建工程
Project--->Create New Project
在新对话框内进行工程基本信息的填写
注意这里Compiler Setting 这里需要选择C语言或者C++,或者两者都选择,取决于测试的项目所使用的语言。
1、Project Name 栏通过右侧按钮选择工程根目录,以根目录名作为工程名。通过右侧按钮
选择工程根目录,以根目录名作为工程名 选好目录后可以进行修改,修改后重新创建工程
目录。
2、根据工程需要在下拉菜单选择配置文件。 (初始选择 default.acf 和default .en_US.rcf 即可)
3、点击 Next 进行相应编译器的选择 ,先选择 C ,在选择 C ++,如果只用 是 C 或者只
是 C++ 的代码 ,则另外一种 cct 可以 任意选择。
建议选择与实际编译器匹配或接近的 cct 文件,没有匹配的编译器时选择Helix_Generic_C 或 Helix_Generic_C++ 。
4、设置完毕后,点击 Finish 则可在弹出的窗口进行工程详细设定。
添加代码
手动添加代码可选择添加单一文件,或添加文件夹。右键选中文件夹,点击Add File(s),选中源代码所在路径。
工程配置
点击 Project --> Project Properties ,打开工程属性页面。
1、?Analysis 用于分析配置。从 Component Option 中选 择配置选项,在对应 Argument
窗口(界面右下角)中进行对应 设置。如选择 i 、 d 等
参数 | 含义 |
---|---|
-d | 必要的宏定义添加 |
-i | 添加必要的头文件路径 |
-quite | 抑制无影响的头文件输出 |
-max errors | 制定最大错误数 |
-threshold | 度量元检测值设定eg:STCYC>10 |
-warncall | 调用函数设置警告eg:open =6001 |
选中Analysis栏,点击qac 9.9.0,点击 -i或者 -d 双击右侧空白处可用添加
这里比较常用的是 -d 和-i,分别是添加路径和宏定义,QAC分析出的错误主要和这几个相关。
Rule Configuration 用于消息设定
在 Rule Configuration 可查看变更 Message 以及规则组。
在这里可以右键不需要的规则disable掉,如果需要 添加其他组件可以按这个方法添加m3cm 2.5.0
Rule Configuration 界面配置 m3cm 规则集
与之前一样,选save和close之后即可设置成功。
执行分析
方式一: 通过菜单栏 Analysis -->File Based Analysis ,选择 对当前工程、所选文件或
勾选指定文件进行静态分析。
方式二:也可以点击图标进行分析
方式三:?可在工程文件列表中,选择相应文件夹 文件,右键 Analyse selected files
对其进行分析。
?分析结果查看
分析完毕后就来到这个界面,下方有个小滑块,可以拖动小滑块过滤出0-9级的错误
违反消息处有叹号标记
Analysis Results/Diagnostics中罗列当前选中文件中违反的消息信息。点击具体 ID 查看 Message 帮助文件,点击 Rule ,查看规则详细信息,双击消息内容,在 代码中高亮显示违反部分代码。可以通过窗口上方叹号标记筛选显示不同级别消息。筛选同时作用于 源代码上的标记。
红色标记Error message
黄色标记Warning message
绿色标记User message
蓝色标记Information message
② 悬浮窗可查看每个违反消息的帮助文档
③ 消息索引 可以选择不同分类:比如——Files 、 Rule Groups 、 Message Levels
生成报告
点击菜单 Report ,选择生成工程或单独文件的报告。
可生成 5 种相关报告:
1、 Code Review Report :生成 html 类型文件,显示文件相关度量结果和分析状态(未被抑制的违反规则数)
2、 Metrics Data Report :点击生成 Metrics Data Report ,将生成 xml 文件,存储相关度
量指标数据。
3、Rule Compliance Report :生成 html 类型文件,显示文件详细的违反规则数。
4、Suppression Report :生成 xml 文件,显示被抑制的消息信息。
5、HIS Metrics Report :生成 html 文件,显示 HIS 度量报告。
常见错误排查
以下是几种常见的9 级错误以及修改思路
切记:所有 的 9 级错误( error )均属于 QAC 的配置问题或本身语法错误,因此该级别
错误不可忽略,必须修正!
1) 缺少必要的头文件。这是在出现的 9 级错误中,首要考虑修正的问题。而且有可能是引
发 0434 消息的根源
错误形式:
修改方式: 通过配置头文件路径,可以使 QAC 在指定路径下搜索到相关文件
2) 关键字不识别 。 不同编译器有不同的扩展关键字,该部分不会影响 QAC 分析,可以通过
宏定义忽略
?错误形式:?
?修改方式: 通过宏定义忽略 最简单的是“ IDENT=IDENT=”,可实现忽略当前 IDENT 标识符的
作用。
除此以外,宏 设置方式还有如下:使用 IDENT=_ignore 的方式,来忽略IDENT 后面的字符。
数据类型不识别 。 有些数据类型的实现并非通过引用头文件实现,而是编译器内部实现,
这种情况下, 需要 将其手动定义 为匹配的基本类型
?修改方式:将非标准数据类型 手动定义 为匹配的基本类型,如 unsigned char 、 short 、int 等
4) #error 错误。 #error 命令是 C/C++ 语言的预处理命令之一,当 预处理器预处理到 #error
命令时将停止编译并输出用户自定义的错误消息。 QAC 分析中, error 报错一般是因为
编译器配置问题导致,我们需要根据当前代码开发环境对工程进行相应配置
错误形式:
修改方式:编译器的库文件中包含众多编译开关如,因此需要在 QAC 中将编译开关涉及
到的宏进行添加,让其进入正确分支,而非错误的“ “#else ”分支
5)QAC 默认设置( size_t/wchar_t/ptrdiff_t )与程序实现不一致
错误形式:
修改方式:在 QAC 中重新设置定义,使其与程序实现保持一致
后记
后续如果有更新部分会继续放在这篇博文里,前面的分析和Tessy相比有些小巫见大巫了,但QAC的九级错误还是同样令人抓狂不止。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!