主要内容

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

控件显示结果时使用的各种颜色Polyspace®代码Prover™分析。

结果颜色

PolySpace通过特定的图标和颜色显示不同的验证结果结果列表结果细节窗格。

运行时检查

Polyspace代码验证检查代码中的每个操作是否存在特定的运行时错误。该软件根据操作是否证明在所有或部分执行路径上存在或不存在运行时错误来分配颜色。

检查颜色 目的 例子 图标

红色的

突出显示在所有执行路径上导致特定错误的操作

Polyspace代码验证验证将参考语言标准确定错误。虽然某些错误对于特定编译环境可以接受,但它们违反了语言标准。要允许某些环境相关的行为,请使用适当的分析选项。有关更多信息,请参阅验证假设检查行为

红色的溢出:

z = x+y;

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

灰色的

突出了遥不可及的代码。

灰色的无法访问的代码检查:

如果(x > 0) {}{}

其他的分支对于所有值都无法访问x核查人员在那时考虑的问题。

橙色

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

有关更多信息,请参阅橙色检查代码箴言

橙色溢出:

z = x+y;

分析无法证明操作是否+溢出。

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

绿色

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

绿色溢出:

z = x+y;

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

对于大多数检查,软件会在路径上的第一个运行时错误之后终止执行路径。因此,如果它证明了某个操作出现了明确的错误(红色)或没有错误(绿色),则该证明仅对代码中尚未在该点终止的执行路径有效。看到在红色和橙色检查之后的代码抄本分析

其他结果

除了检查运行时错误之外,Polyspace代码验证还显示关于代码的其他结果。

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

源代码的颜色

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

  • 行与检查

    每一次检查结果列表窗格,PolySpace将校验颜色分配给代码的相应部分。

    • 对于包含宏的行,如果宏被折叠,Polyspace将用该行中最严格检查的颜色对整个行进行着色。严重程度按以下顺序递减:红色、灰色、橙色、绿色。

      这遥不可及的循环包含一个宏MAX_SIZE.整条线是灰色的。

      如果包含宏的行中没有检查,Polyspace将在宏折叠时以黑色下划线显示该行。

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

      此任务有三个检查:used_global.被初始化但数组标签可以在其边界之外访问。的操作符用橙色表示问题。

  • 与编码规则违规的行

    对于每个编码规则违反结果列表窗格中,Polyspace分配给相应的关键字或标识符:

    • 一个(倒三角)符号,如果编码规则是一个预定义的规则。可用的预定义规则为MISRA C®,臭臭®AC AGC, MISRA c++,或JSF®C ++。

      如果声明和||行动违反MISRA规则。

    • 一个如果编码规则是自定义规则,则符号。

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

  • 与工具提示

    如果工具提示可用于关键字或标识符来源窗格,波尔多斯:

    • 如果关键字或标识符与检查相关联,则使用实线下划线。

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

    • 如果关键字或标识符与检查没有关联,则使用虚线下划线。

      这一行有工具提示<,但没有检查它们。

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

      这叫function_with_red.导致运行时错误。

  • 函数定义

    当定义函数时,PolySpace颜色为蓝色中的函数名称。

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

    Polyspace将浅灰色赋给由于条件编译而预处理出来的代码。例如,这样的代码发生在# ifdef没有定义分支的宏的语句。此代码不会影响验证(或实际运行时行为)。

全局变量的颜色

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

例如,used_global.全局变量是否被访问四次:一次在初始化期间,一次在函数中function_with_red.,函数中有两次function_with_grey.

配色方案如下:

  • 变量的颜色

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

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

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

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

    看到全局变量

  • 操作颜色:如果在不可达代码中发生操作,则为灰色,否则为黑色。

    在上面的例子中,函数中的一个操作function_with_grey.无法访问,但另一个是可以到达的。

有关更多信息,请参阅变量访问