本主题解释了用于显示A结果的各种颜色据span class="entity">波尔盖斯据sup>®据/sup>代码验证™据/span>分析。据/p>
控件上的特定图标和颜色显示不同的验证结果据strong class="guilabel">结果清单据/strong>和据strong class="guilabel">结果细节据/strong>窗格。据/p>
PolySpace代码箴言据/span>检查代码中的每个操作以获取特定的运行时错误。该软件基于它是否证明存在于所有或一些执行路径上的运行时错误的存在或不存在来分配颜色。据/p>
红色的据/strong> 突出显示已证明会在所有执行路径上导致特定错误的操作据code class="literal">*据/code>。据/p> PolySpace代码箴言据/span>验证依据语言标准确定错误。尽管某些错误对于特定的编译环境是可以接受的,但它们违反了语言标准。为了允许某些环境依赖行为,使用适当的分析选项。有关更多信息,请参见据a href="//www.tatmou.com/it/help/codeprover/verification-assumptions.html" class="a">验证假设据/a>和据a href="//www.tatmou.com/it/help/codeprover/check-behavior.html" class="a">检查行为据/a>。据/p> 红色的据strong class="guilabel">溢出据/strong>在:据/p>
操作据code class="literal">+据/code>的每个值都会溢出据code class="literal">X据/code>和据code class="literal">y据/code>核查人员在那时考虑的问题。据/p> 突出显示无法访问的代码。据/p> 灰色的据strong class="guilabel">遥不可及的代码据/strong>查看:据/p>
这据code class="literal">别的据/code>的所有值都无法到达分支据code class="literal">X据/code>核查人员在那时考虑的问题。据/p> 突出显示可能导致某些执行路径错误的操作。据/p> 有关更多信息,请参见据a href="//www.tatmou.com/it/help/codeprover/ug/sources-of-orange-checks-1.html" class="a">橙色检入代码验证器据/a>。据/p> 橘子据strong class="guilabel">溢出据/strong>在:据/p>
分析无法证明该行动是否据code class="literal">+据/code>溢出。据/p> 最常见的原因是,操作仅对某些值溢出据code class="literal">X据/code>和据code class="literal">y据/code>核查人员在那时考虑的问题。您可以在变量上使用工具提示据code class="literal">X据/code>和据code class="literal">y据/code>在操作中查看验证考虑的值范围。据/p> 突出显示未在所有执行路径上引起特定错误的操作据code class="literal">*据/code>。据/p> 绿据strong class="guilabel">溢出据/strong>在:据/p>
操作据code class="literal">+据/code>为所有值溢出据code class="literal">X据/code>和据code class="literal">y据/code>核查人员在那时考虑的问题。据/p> 除了检查运行时错误,据span class="entity">PolySpace代码箴言据/span>还会显示关于您的代码的其他结果。据/p>
Polyspace使用以下颜色方案来显示代码据strong class="guilabel">源据/strong>窗格。据/p>
带有检查的线条据/em>:据/p> 每次检查据strong class="guilabel">结果清单据/strong>窗格中,Polyspace将检查颜色分配给相应的代码段。据/p>
对于包含宏的行,如果宏折叠,则PolySpace颜色的整个线路在线上最严重的检查颜色。严重程度按此顺序减少:红色,灰色,橙色,绿色。据/p> 这个无法到达据code class="literal">为了据/code>循环包含宏据code class="literal">max_size.据/code>。整行是彩色的灰色。据/p>
如果在包含宏的行中没有检查,则PolySpace会在宏折叠时强调黑色的线路。据/p> 对于所有其他行,PolySpace颜色仅颜色只有与支票关联的关键字或标识符。据/p> 这个任务有三个检查:据code class="literal">一世据/code>和据code class="literal">used_global据/code>初始化但数组据code class="literal">选项卡据/code>可以在其范围内访问。这据code class="literal">[据/code>操作员是彩色橙色,以表明问题。据/p>
违反编码规则的行据/em>:据/p> 对于每一个编码规则的违反据strong class="guilabel">结果清单据/strong>窗格,PolySpace分配给相应的关键字或标识符:据/p>
一种据span class="guiicon">(反相三角形)符号如果编码规则是预定义规则。可用的预定规则是Misra C.据sup>®据/sup>, MISRA据sup>®据/sup>AC AGC,Misra C ++或JSF据sup>®据/sup>c++。据/p> 这个据code class="literal">如果据/code>语句和据code class="literal">||据/code>操作违反了Misra规则。据/p>
一种据span class="guiicon">符号,如果编码规则是自定义规则。据/p> 此函数名称违反了自定义命名约定。据/p>
带工具提示的行据/em>:据/p> 控件上的关键字或标识符有工具提示据strong class="guilabel">源据/strong>窗格中,Polyspace:据/p>
如果与支票相关联,则使用关键字或标识符的实体下划线。据/p> 此行具有检查和工具提示据code class="literal">输入据/code>那据code class="literal">%据/code>和据code class="literal">used_global据/code>。据/p>
如果它没有与检查相关联的关键字或标识符,则使用虚线下划线。据/p> 这条线有工具提示据code class="literal">为了据/code>和据code class="literal">据据/code>,但没有检查。据/p>
在函数调用或循环命令上使用红色虚线下划线,以指示函数体或循环体包含潜在的运行时错误。工具提示显示了函数或循环体中导致错误的行。据/p> 这个电话据code class="literal">function_with_red据/code>导致运行时错误。据/p>
功能定义据/em>:据/p> 当定义一个函数时,Polyspace将函数名用蓝色表示。据/p>
由于条件编译而停用的行据/em>:据/p> PolySpace将浅灰色颜色分配给由于条件编译而被预处理的代码。例如,此类代码发生在据code class="literal">#ifdef.据/code>未定义分支的宏的语句。此代码不会影响验证(或实际运行时行为)。据/p>
这据strong class="guilabel">可变访问据/strong>窗格显示代码中的全局变量以及变量上的读写操作。据/p>
例如,据code class="literal">used_global据/code>是四次访问的全局变量:初始化期间一次,函数一次据code class="literal">function_with_red据/code>在功能中两次据code class="literal">function_with_grey据/code>。据/p>
配色方案如下:据/p>
可变的颜色据/em>:据/p>
橘子据/span>:共享,未受保护的全局变量(仅适用于多任务代码)据/p> 绿据/span>:共享的,受保护的全局变量(仅适用于多任务代码)据/p> 黑色:非共享的,已使用的全局变量据/p> 灰色的据/span>:不共享,未使用的全局变量据/p> 看据a href="//www.tatmou.com/it/help/codeprover/global-variable-reference.html" class="a">全局变量据/a>。据/p> 操作的颜色据/em>:如果在无法访问的代码中发生操作,则它是灰色的,否则是黑色的。据/p> 在前面的示例中,函数中的一个操作据code class="literal">function_with_grey据/code>是无法到达的,但另一个是可以到达的。据/p> 有关更多信息,请参见据a href="//www.tatmou.com/it/help/codeprover/ug/variable-access.html" class="a">可变访问据/a>。据/p>
结果颜色据/h3>
运行时间检查据/h4>
检查颜色据/th>
目的据/th>
例子据/th>
图标据/th>
z = X.据span class="red">+据/span>y;据/pre>
灰色的据/strong>
if(x> 0){} else据span class="gray">{}据/span>
橘子据/strong>
z = X.据span class="orange">+据/span>y;据/pre>
绿据/strong>
z = X.据span class="green">+据/span>y;据/pre>
*据/code>对于大多数检查,软件终止路径上第一个运行时错误后的执行路径。因此,如果在操作上证明了一个明确的错误(红色)或缺少错误(绿色),则证明仅针对尚未在代码中的该点终止的执行路径有效。看据a href="//www.tatmou.com/it/help/codeprover/ug/verification-following-red-and-orange-checks.html" class="a">红色和橙色检查后的代码验证器分析据/a>。据/p>
其他结果据/h4>
结果据/th>
目的据/th>
图标据/th>
编码规则的违反据/strong>
表示违反预定义或自定义编码规则。据/td>
用于预定义的规则和据span class="guiicon">用于自定义规则。据/td>
代码指标据/strong>
表示代码复杂度指标。据/td>
对于不超过您指定的限制的指标据span class="guiicon">对于超过限制的指标。据/td>
全局变量据/strong>
表示全局变量声明。据/td>
对于共享的可能不受保护的变量和据span class="guiicon">对于非共享的未使用的变量据/td>
源代码颜色据/h3>
全局变色据/h3>