主要内容

在Polyspace桌面用户界面中解释代码验证程序结果

本主题展示了如何在Polyspace桌面产品的用户界面中检查Code Prover结果。下载188bet金宝搏要查看如何在Polyspace Access web界面中查看结果,请参见在Polyspace访问Web界面中解释代码验证结果

当您打开多空间®代码验证™分析后,您会在屏幕上看到一个列表成绩表窗玻璃该列表包括运行时检查、编码规则冲突、代码度量和全局变量使用。

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

  • 在结果列表列上使用过滤器。例如,您可以首先关注红色支票。

  • 按文件和函数组织结果。使用图标上方的列表。

    因为代码验证器运行时检查的结果依赖于前面检查的结果,所以从头到尾进行运行时检查会有所帮助。

另见Polyspace桌面用户界面中的过滤和组结果.一旦您缩小了列表,您就可以开始查看单个结果了。介绍评审结果的方法。

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

解释结果

解读信息

第一步是了解问题所在。阅读网页上的信息结果细节窗格和上的相关代码行窗格。

此时,您可能已经准备好决定是否修复该问题。

该信息由以下几个部分组成:

  • 检查颜色和图标:看到了代码验证程序结果和源代码颜色.在检查运行时错误时:

    • :红色表示明确错误。

    • :橙色表示可能存在错误。

    • :灰色表示不可达代码。

    • :绿色表示不允许某个错误发生。

  • 运行时检查的描述。

    在前面的例子中,检查确定了数组索引是否超出了数组边界。

  • 与运行时检查相关的值。

    在这个示例中,消息声明了数组大小(127)、数组边界(0..126)以及数组索引变量在代码中此时可以接受的值范围(0..555)。

  • 不精确的相关来源(用于橙色检查)。

    在该示例中,消息指出两个易失性变量可能负责检查。

请参见源代码工具提示中的变量范围

窗格中,带有工具提示的变量和操作都带有下划线。

在此示例中,工具提示显示在:

  • s8_ret:可以看到它的数据类型和值的范围+操作。

    如果在+操作期间发生数据类型转换,您也可以在工具提示中看到此转换。

  • +:您可以看到左右操作数的值以及结果。

  • =:可以看到在赋值和结果期间发生的任何数据类型转换。

获得额外的帮助

有时,为了获得某些结果,您需要额外的帮助。要打开所选结果的帮助页面,请单击偶像请参阅说明结果的代码示例。

找出导致结果的根本原因

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

在源代码中导航

有时候,结果细节窗格显示导致结果的一系列事件。然而,在大多数情况下,您必须通过代码找到自己的导航路径。使用变量的工具提示,在代码中导航时跟踪变量范围的传播。

int func(int var){/*var的初始范围*/…var-=get();/*var的新范围*/…set(&var);/*var的新范围*/}

在用户界面中使用以下快速导航路径:

  • 搜索所有对变量的引用并浏览它们。

    右键单击屏幕上的变量名称窗格中,选择搜索所有参考资料. 或者,双击该变量。这些选项执行的不仅仅是字符串匹配。这些选项仅显示特定变量的实例,而不显示其他作用域中具有相同名称的其他变量。

  • 从函数调用导航到其定义。

    上右键单击函数名窗格。选择转到定义

  • 从函数导航到其调用者和被调用者。

    单击屏幕上的图标结果细节窗玻璃您可以看到包含结果的函数及其调用者和被调用者。单击呼叫者或被呼叫者名称以导航到呼叫站点。双击名称以导航到定义。

    或者,单击图标以查看导致结果的调用序列的图形表示。要导航到此序列中的函数,请单击图中的节点。

  • 从函数调用或循环关键字导航到函数或循环正文中的错误。

    如果错误仅发生在特定函数调用或特定循环迭代中,则函数调用或循环迭代将以红色突出显示。右键单击红色函数调用或循环关键字。选择引起如果该选项可用。

  • 在全局变量的所有实例间导航。

    单击屏幕上的图标结果细节窗格。查看结果中的所有全局变量,并对它们进行读写操作。

在开始在代码中的路径中导航之前,请确定要查找的内容并选择适当的导航工具。例如:

  • 调查一个未初始化变量检查,您可能希望确保变量根本没有初始化。查找该变量以前的实例,并查看它是否已初始化。

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

    应使用具有非void返回类型的函数返回的值。
    您可能希望从函数调用导航到函数定义。

想要了解其他的例子,请看代码验证程序运行时检查. 离开当前结果后,使用屏幕上的图标结果细节窗格以返回该结果。

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

在单独的窗口中导航

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

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

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

相关的话题