主要内容

代码验证程序结果和源代码颜色

本主题介绍用于显示结果的各种颜色多空间®代码验证™分析。

结果颜色

控件上的特定图标和颜色显示不同的验证结果成绩表结果细节窗格。

运行时检查

多空间码验证器检查代码中的每个操作是否存在特定的运行时错误。软件会根据操作是否证明所有或某些执行路径上存在或不存在运行时错误来为操作指定颜色。

检查颜色 目的 例子 偶像

红色

突出显示已证明会在所有执行路径上导致特定错误的操作*.

多空间码验证器验证依据语言标准确定错误。尽管某些错误对于特定的编译环境是可以接受的,但它们违反了语言标准。为了允许某些环境依赖行为,使用适当的分析选项。有关更多信息,请参见验证假设检查行为.

红色溢出关于:

z=x+Y

操作+的每个值都会溢出xY核查人员在那时考虑的问题。

灰色

突出显示无法访问的代码。

灰色遥不可及的代码检查:

如果(x>0){}else{}

这个其他的的所有值都无法到达分支x核查人员在那时考虑的问题。

橙色

突出显示可能在某些执行路径上导致错误的操作。

有关更多信息,请参见橙色检入代码验证器.

橙色溢出关于:

z=x+Y

分析无法证明该行动是否+溢出。

最常见的原因是,操作仅对某些值溢出xY核查人员在那时考虑的问题。您可以在变量上使用工具提示xY在操作中查看验证考虑的值范围。

绿色

突出显示经证明不会在所有执行路径上导致特定错误的操作*.

绿色溢出关于:

z=x+Y

操作+不会对的所有值溢出xY核查人员在那时考虑的问题。

*对于大多数检查,软件会在路径上的第一个运行时错误之后终止执行路径。因此,如果它证明某个操作存在明确错误(红色)或无错误(绿色),则该证明仅对代码中该点尚未终止的执行路径有效。请参阅红色和橙色检查后的代码验证器分析.

其他结果

除了检查运行时错误,多空间码验证器还显示有关代码的其他结果。

结果 目的 偶像
编码规则的违反 表示违反预定义或自定义编码规则。 用于预定义的规则和对于自定义规则。
代码度量 表示代码复杂度指标。 对于不超过指定限制的指标,以及对于超过限制的指标。
全局变量 表示全局变量声明。 对于共享的可能不受保护的变量和对于非共享的未使用的变量

源代码颜色

Polyspace使用以下颜色方案来显示代码窗格。

  • 支票行:

    每检查一次成绩表窗格中,Polyspace将检查颜色分配给相应的代码段。

    • 对于包含宏的行,如果宏已折叠,则Polyspace将使用该行上最严格检查的颜色对整个行进行着色。严重性按以下顺序降低:红色、灰色、橙色、绿色。

      这是遥不可及的对于循环包含一个宏最大尺寸. 整条线都是灰色的。

      如果没有签入包含宏的行,则当宏折叠时,Polyspace会在该行的下方加上黑色下划线。

    • 对于所有其他行,Polyspace仅为与检查关联的关键字或标识符上色。

      这个任务有三个检查:used_global初始化但数组选项卡可以在其边界之外访问[操作员被涂成橙色以指示问题。

  • 违反编码规则的行:

    对于每一个编码规则的违反成绩表窗格中,Polyspace指定给相应的关键字或标识符:

    • A.(倒三角形)符号,如果编码规则是预定义规则。可用的预定义规则是MISRA C®, MISRA®AC AGC、MISRA C++、JSF®c++。

      如果语句和||该行动违反了MISRA规则。

    • A.符号,如果编码规则是自定义规则。

      此函数名违反自定义命名约定。

  • 带有工具提示的行:

    控件上的关键字或标识符有工具提示窗格中,Polyspace:

    • 如果关键字或标识符与支票关联,则对其使用实心下划线。

      这一行有检查和工具提示输入,%used_global.

    • 如果关键字或标识符未与支票关联,则对其使用虚线下划线。

      这一行上有工具提示对于<,但没有检查。

    • 在函数调用或循环命令上使用红色虚线下划线,以指示函数体或循环体包含潜在的运行时错误。工具提示显示了函数或循环体中导致错误的行。

      这个电话function_with_red导致运行时错误。

  • 函数定义:

    当定义一个函数时,Polyspace将函数名用蓝色表示。

  • 由于条件编译而停用的行:

    Polyspace为由于条件编译而预处理的代码指定浅灰色。例如,这种代码出现在#ifdef未定义分支宏的语句。此代码不影响验证(或实际运行时行为)。

全局可变颜色

这个可变访问窗格显示代码中的全局变量以及对变量的读写操作。

例如,used_global是一个全局变量,可访问四次:一次在初始化期间,一次在函数中function_with_red,并在函数中执行两次function_with_grey.

配色方案如下:

  • 可变颜色:

    • 橙色:共享的、不受保护的全局变量(仅适用于多任务代码)

    • 绿色:共享的,受保护的全局变量(仅适用于多任务代码)

    • 黑色:非共享的,已使用的全局变量

    • 灰色:未共享、未使用的全局变量

    看见全局变量.

  • 操作的颜色:如果操作发生在无法访问的代码中,则为灰色,否则为黑色。

    在前面的示例中,函数中的一个操作function_with_grey是无法到达的,但另一个是可以到达的。

有关更多信息,请参见可变访问.