解释 Polyspace Access Web 界面中的 Bug Finder 结果
本主题展示了如何在 Polyspace Access Web 界面中审查 Bug Finder 结果。若要了解 Polyspace 桌面端产品的用户界面中的类似工作流,请参阅。要了解如何在 IDE 中审查 Polyspace as You Code 的结果,请参阅。
在 Polyspace Access 的审查视图中打开 Bug Finder 分析的结果时,您会在结果列表窗格中看到一个列表。结果包括缺陷、编码违规或代码度量。
您可以首先缩小审查的重点:
使用工具条中的过滤器来缩小列表范围。例如,您可以重点关注影响程度高的缺陷。
点击结果列表中的某个列标题来根据该列的内容对列表进行排序。例如,您可以按组或按文件进行排序。
缩小列表范围并对列表进行排序后,您可以开始审查各个结果。本主题介绍了如何审查结果。

要开始审查,请在列表中选择一个结果。
解释结果详细信息中的消息

解释消息
第一步是了解问题所在。阅读结果详细信息窗格中的消息和源代码窗格中的相关代码行。
查找其他资源以寻求帮助
有时,您需要更多帮助才能得到一定的结果。您可点击
图标以打开所选结果的帮助页面。查看对结果进行说明的代码示例。检查 CERT-C 等外部标准,这些标准为解决问题提供了更多的依据。点击
图标(如果可用)可查看该缺陷的修复建议。
此时,您应能决定是否修复该问题。如已确定问题的修复方案,一起审查该类型的所有结果会更有帮助。
查明导致结果的根本原因
有时,根本原因可能与显示结果的实际位置相去甚远。例如,您读取的某个变量可能未初始化,因为初始化代码不可达。当您读取该变量时会显示该缺陷,但根本原因可能是前面的 if 或 while 条件始终为 false。
导航到相关事件
通常情况下,结果详细信息窗格会显示导致该结果的事件序列。源代码窗格还会突出显示这些事件。

在上面的事件回溯中,显示了以下序列:
声明变量
value。执行路径绕过一条
if语句。如果该变量在if块内初始化,则此信息可能与问题有关联。当前缺陷的位置:未初始化的变量
通常情况下,回溯会显示控制流中的重要点:进入或绕过条件语句或循环、进入函数等。对于特定缺陷,回溯会显示与该缺陷相关的其他类型的事件。例如,对于声明不匹配缺陷,回溯会显示两个互相冲突的声明的位置。
创建您自己的导航路径
如果事件回溯不可用,请使用其他导航工具跟踪您自己的代码路径。

在开始导航至代码中的路径之前,请提出以下问题:我要查找什么?根据您的回答,选择合适的导航工具。例如:
要调查未初始化的变量缺陷,您可能需要确定该变量根本没有初始化。要查找该变量的先前实例,请在源代码窗格中右键点击该变量并选择搜索所有引用。此选项仅列出特定变量的实例,而不列出其他作用域中同名的其他变量。
要调查以下 MISRA C:2012 Rule 17.7 规则的违规情形:
您可能需要从函数调用导航到函数定义。右键点击该函数并选择转至定义。The value returned by a function having non-void return type shall be used.
离开当前结果后,可以使用结果详细信息窗格中的
图标返回。
要从源代码窗格中选择其他结果,请在按住 Ctrl 键的同时点击该结果,或右键点击并选择选择此位置处的相关结果。结果详细信息窗格会更新,但您选择的结果不会在结果列表窗格中突出显示。点击结果列表中的结果会更新结果详细信息和源代码窗格。