Polyspace工具基本介绍
文章目录
专题目录
1. Polyspace工具基本介绍
1.1 Polyspace工具作用
-
Polyspace :软件运行时错误检测工具
-
作用:解决代码
鲁棒性
问题,提高软件安全性,可靠性- 编码错误
- 编码规则一致性(MISRA/JSF)
- 静态度量(代码量,调用次数等)
- 测试覆盖度
- 软件质量水平
-
针对C/C++代码
Polyspace Bug Finder
: 静态检测,代码错误、规则Polyspace Code Prover
: 运行错误检查,组件深层验证
1.2 Polyspace工程建立
- 以分析fun_test.c函数文件为例进行说明,该文件中的源函数见文末附件,工程建立方法如下:
1. 建立新工程
2. 导入分析代码
Project Souce Files
: 分析的源文件Project Include Folders
: 源文件包含的头文件(本例无)
3. 选择分析模块- Module为具体分析内容模块:
Module Souce Files
: 分析代码内容Configuration
: 检查内容配置Result
: 结果
4. 分析项配置
Comfiguration 配置
如下:(此处不做详细说明,按照默认的配置进行分析)
5. 运行检查- 选择分析检查方法,点击开始仿真运行
- 还可选择是否运行生成新的结果文件
1.3 Polyspace Bug Finder 分析及结果
- 分析结束后,分析结果有如下展示窗口 :
- Output Summary窗口
此窗口会展示分析进度,分析过程信息输出、分析中遇到的问题、是否分析结束等信息。(当分析代码编译存在问题时,该过程会有红色警告,文件查找失败等内容会有黄色警告)。 - Dashboard窗口
分析结果报告显示窗口,会显示如下信息内容:
1)风险错误数量比例饼状图:红色表示高风险错误,粉红表示低风险,(点击在Result List窗口会列举出对应的内容信息)。
2)分析覆盖度柱状图
3)错误类型及数量图 - Result List窗口
1)列举出具体风险类型项,位置,数量等信息,比如示例检查出1处执行不到的死代码和2出可能溢出的位置。
2)点击风险项,在Source窗口对照源代码分析问题。 - Source窗口
Source窗口会展示风险代码并告知错误产生的具体原因:
1)左侧代码行数前有个红圆圈,标识风险位置
2)代码颜色红色标识,表明风险产生的原因
3)产生风险的过程原因代码下有小点点标识出来,鼠标放在小点点位置上,会自动弹窗显示出原因。 - Result Details窗口
详细展示分析过程,解释风险产生了流程。
1.4 Polyspace Code Prover 分析及结果
Polyspace Code Prover 分析结果和 Polyspace Bug Finder 分析结果基本一样,补充介绍如下内容:
- Dashboard窗口颜色意义
1)绿色:绝对安全代码
2)红色:存在错误的高风险代码
3)橙色:可能存在错误的底风险代码(比如取决与函数的返回值,外部变量范围)
4)灰色:不会执行的死代码 - Source窗口
在Source窗口同样以绿色,红色,灰色,橙色4个级别展示出代码的安全风险级别。
附件:分析源函数
extern signed char extFunc( signed char y );
signed char firstfun(void){
signed char x = 1;
signed char y;
signed char z;
signed char res;
y = x + 5;
if( y < 0 ){
y = 0;
}
z = extFunc( y );
if( z <= 123){
res = z + 5;
}else{
res = z + 6;
res = res/2;
}
return res;
}
感谢阅读 若有错误 敬请见谅!!!