主要内容

在Polyspace桌面用户界面中解释Bug查找结果

本主题展示如何在Polyspace桌面产品的用户界面中查看Bug Finder结果。下载188bet金宝搏有关Polyspace Access web界面中的类似工作流,请参见解释Bug查找结果在Polyspace访问Web界面(Polyspace Bug查找器访问).要查看如何在ide中编写Polyspace代码时检查结果,请参见在ide中编写代码时运行Polyspace,并检查结果(Polyspace Bug查找器访问)

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

首先,你可以缩小审查的重点:

  • 在结果列表列上使用筛选器来缩小列表范围。例如,您可以将重点放在高影响的缺陷上。

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

一旦您缩小了列表,您就可以开始查看单个结果了。介绍评审结果的方法。

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

解释结果细节消息

解释信息

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

寻求其他资源的帮助

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

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

找出导致结果的根本原因

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

浏览相关事件

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

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

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

  2. 执行路径绕过如果声明。的内部初始化变量时,此信息可能相关如果块。

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

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

创建自己的导航路径

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

在您开始在代码中导航之前,问一个问题:我在寻找什么?根据你的答案,选择合适的导航工具。例如:

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

  • 调查…的违规行为MISRA C:2012规则17.7

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

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

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

在单独的窗口中导航

如果检查结果需要在源代码中进行更深入的导航,则可以创建一个重复的源代码窗口,在原始源代码窗口中导航时,重点关注结果。

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

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

相关的话题