主要内容

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

本主题展示如何在Polyspace桌面产品的用户界面中查看Bug Finder结果。2022世界杯八强谁会赢?

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

首先,你可以缩小回顾的重点:

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

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

一旦你缩小了列表,你就可以开始检查单个的结果了。介绍检查结果的操作步骤。

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

解释结果细节信息

解释信息

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

寻求额外的帮助资源

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

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

找出结果的根本原因

有时,根本原因可能与显示结果的实际位置相差甚远。例如,您读取的变量可能没有初始化,因为初始化不可达。缺陷在读取变量时显示出来,但根本原因可能是先前的如果条件总是假的。

浏览相关事件

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

在上面的事件回溯中,如下顺序:

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

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

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

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

创建自己的导航路径

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

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

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

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

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

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

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

在单独的窗口中导航

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

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

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

相关的话题

Baidu
map