【回眸】QAC软件指南——萌新使用篇

发布时间:2023年12月29日

前言

真没想到用的这个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的九级错误还是同样令人抓狂不止。

文章来源:https://blog.csdn.net/tianbutian_/article/details/135198648
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。