主要内容

解释Polyspace错误发现者结果

当你打开a的结果Polyspace®错误发现者™分析后,你会看到一个列表结果列表窗格。结果包括缺陷、违反编码规则或代码度量。

你可以先缩小评论的焦点:

  • 在结果列表列上使用过滤器来缩小列表。例如,您可以关注影响较大的缺陷。

  • 按文件或结果族组织结果。使用图标上方的列表。

一旦你缩小了范围,你就可以开始检查每个结果了。介绍检查结果的方法。

要开始检查,请在列表中选择一个结果。

解释结果详细信息消息

解释信息

第一步是要了解哪里出了问题。阅读上面的信息结果细节控件上的相关代码行窗格。

寻求其他资源的帮助

有时候,你需要额外的帮助来达到某些效果。单击图标,以打开所选结果的帮助页面。参见演示结果的代码示例。检查外部标准,如CWE或CERT-C,这些标准为解决问题提供了额外的理由。

此时,您可能已经准备好决定是否修复问题了。一旦您确定了一个修复,就可以一起检查该类型的所有结果。

找出结果的根本原因

有时,根本原因可能远离显示结果的实际位置。例如,读取的变量可能是未初始化的,因为初始化不可达。当您读取变量时,缺陷就会显示出来,但根本原因可能是先前的错误如果总是为假的条件。

导航到相关事件

通常,结果细节窗格显示一个导致结果的事件序列。的窗格还突出显示这些事件。

在上面的事件回溯中,如下所示:

  1. 一个变量价值是宣布。

  2. 执行路径绕过an如果声明。函数中初始化变量时,这个信息可能是相关的如果块。

  3. 当前缺陷的位置:Non-initialized变量

通常,回溯显示控制流中的主要点:进入或绕过条件语句或循环,进入一个函数,等等。对于特定的缺陷,回溯显示了与缺陷相关的其他类型的事件。例如,a声明不匹配缺陷时,回溯显示有冲突声明的两个位置。

创建自己的导航路径

如果事件回溯不可用,请使用其他导航工具来跟踪您自己通过代码的路径。

在您开始在代码中的路径中导航之前,请问这样一个问题:我在寻找什么?根据您的回答,选择适当的导航工具。例如:

  • 调查一个Non-initialized变量缺陷时,您可能想要确保变量根本没有初始化。要查找该变量的以前实例,请在窗格,右键单击变量并选择搜寻所有参考资料。或者,双击变量。这些选项只显示特定变量的实例,而不显示其他作用域中同名的其他变量的实例。

  • 调查违反MISRA C:2012规则17.7:

    返回类型为应使用的函数返回的值。
    您可能希望从函数调用导航到函数定义。右键单击该函数并选择去定义

导航离开当前结果后,使用图标结果细节窗格回来。

如果单击包含结果的源代码令牌,则选择上一个结果结果列表还有关于结果细节窗格不会改变。在源代码中导航时,可以将结果保存在结果列表中,并固定结果细节。有时,您可能希望看到与令牌相关联的结果。若要更新结果选择及详情,Ctrl-单击令牌或右键单击并选择选择此位置的结果

在单独的窗口中导航

如果评审一个结果需要在源代码中进行更深入的导航,那么您可以创建一个重复的源代码窗口,当您在原始源代码窗口中导航时,它将重点放在结果上。

右键单击窗格中,选择创建重复代码窗口。右键单击显示重复文件名的选项卡(以产卵1),并选择新的垂直组

当缺陷仍然出现在原始文件窗口时,在duplicate file窗口中执行导航步骤。调查结束后,关闭复制窗口。

相关的话题