颜色代码验证结果和源代码
这一主题解释了各种颜色用于显示的结果Polyspace®代码验证™分析。
结果颜色
Polyspace显示不同的验证结果与特定的图标和颜色结果列表和结果细节窗格。
运行时检查
Polyspace代码验证在代码中检查每个操作特定的运行时错误。分配一个颜色的软件操作基于是否证明了一个运行时错误的存在与否全部或部分执行路径。
检查颜色 | 目的 | 例子 | 图标 |
---|---|---|---|
红色的 |
强调操作证明在所有执行路径导致一个特定的错误 Polyspace代码验证验证错误决定参照标准的语言。虽然有些错误可以接受一个特定的编译环境,他们违反了语言标准。允许一些依赖环境的行为,使用适当的分析选项。有关更多信息,请参见验证假设和检查行为。 |
红色的溢出: z = x+y;
操作 |
|
灰色的 | 突出了遥不可及的代码。 |
灰色的遥不可及的代码检查: 如果(x > 0) {}{}
的 |
|
橙色 | 突出的操作可能会导致一个错误在某些执行路径。 有关更多信息,请参见橙色检查Polyspace代码验证。 |
橙色溢出: z = x+y;
分析无法证明是否操作 最常见的原因是,一些值的操作仅溢出 |
|
绿色 | 强调操作证明不会导致一个特定的错误执行路径 |
绿色溢出: z = x+y;
操作 |
*
对于大多数检查,软件终止执行路径后第一次运行时错误的道路上。因此,如果它被证明是一个明确的错误(红色)或没有错误(绿色)操作,证明是有效的执行路径,这一点尚未终止的代码。看到代码验证分析后红色和橙色检查。
其他结果
除了检查运行时错误,Polyspace代码验证结果还显示其他关于你的代码。
结果 | 目的 | 图标 |
---|---|---|
编码规则的违反 | 表明违反预定义的或自定义编码规则。 | 预定义的规则和自定义规则。 |
代码度量 | 显示代码复杂性度量。 | 您指定的指标不超过极限超过限制的指标。 |
全局变量 | 表示全局变量声明。 | 对潜在的不变量和共享对于非共享未使用的变量 |
源代码的颜色
Polyspace使用以下配色方案显示代码源窗格。
行与检查:
每一个检查结果列表窗格中,Polyspace分配的检查颜色对应的部分代码。
对于包含宏的线,如果宏观崩溃,然后Polyspace颜色整个的颜色最严重的检查。严重降低在这个顺序:红、灰色、橙色、绿色。
这遥不可及的
为
循环包含一个宏MAX_SIZE
。整个线是灰色。如果没有检入一行包含一个宏,Polyspace突显了在黑色线宏时倒塌。
对于所有其他行,Polyspace颜色只有关键字或标识符相关的检查。
这个任务有三个检查:
我
和used_global
初始化数组呢选项卡
可以访问它的范围之外。的(
运营商是橙色指示的问题。
行编码规则的违反:
每一个编码违反规则结果列表窗格中,Polyspace分配到相应的关键字或标识符:
一个(倒三角形)符号编码规则是一个预定义的规则。可用的预定义的规则是MISRA - C™, MISRA™AC AGC, MISRA c++或JSF®c++。
这
如果
语句和| |
MISRA操作违反了规则。一个符号的编码规则是一个自定义规则。
这个函数名违反了一个自定义的命名约定。
与工具提示:
如果工具提示可用关键字或标识符源窗格中,Polyspace:
使用固体强调关键字或标识符如果是检查。
这条线检查和工具提示
输入
,%
和used_global
。为关键字或标识符使用冲强调如果不检查。
这条线工具提示
为
和<
,但没有检查。使用冲红突显出函数调用或循环命令来表明,函数体或循环体包含一个潜在的运行时错误。工具提示显示了在函数或循环体,导致错误。
这叫
function_with_red
会导致运行时错误。
函数定义:
当定义一个函数,Polyspace颜色蓝色的函数名。
行关闭由于条件编译:
Polyspace分配一个浅灰色的颜色是由于预处理条件编译的代码。这样的代码发生,例如,在
# ifdef
语句的宏没有定义一个分支。这段代码不影响验证(或实际运行时行为)。
全局变量的颜色
的变量访问窗格中显示了您的代码中的全局变量以及变量的读和写操作。
例如,used_global
是一个全局变量访问四倍:一旦在初始化期间,一旦进入函数function_with_red
,两次函数function_with_grey
。
配色方案如下:
变量的颜色:
橙色:共享,保护全局变量(只适用于多任务代码)
绿色:共享,保护全局变量(只适用于多任务代码)
黑色:独享的,使用全局变量
灰色的:独享的,未使用的全局变量
看到全局变量。
操作的颜色:如果一个操作发生在遥不可及的代码,它是灰色的,否则黑色。
在前面的例子中,一个操作的功能
function_with_grey
是遥不可及的,但另一个是可获得的。
有关更多信息,请参见变量访问在Polyspace桌面用户界面。