主要内容

解释波尔盖斯代码箴言结果

当你打开一个结果波尔盖斯®代码Prover™分析,你看到了一个列表结果清单窗格。该列表包括运行时检查,编码规则违规,代码度量和全局变量使用。

您可以首先缩小您的评论的重点:

  • 在结果列表列上使用过滤器。例如,您可以专注于红色检查。

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

    因为代码谚语运行时检查的结果取决于先前检查的结果,所以它有助于从函数的开始到结束时通过运行时间检查。

也可以看看过滤器和组结果。缩小列表后,您可以开始查看个人结果。本主题介绍如何查看结果。

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

解释结果

解释消息

第一步是了解问题是什么。阅读上的消息结果细节窗格和相关的代码线来源窗格。

此时,您可能已准备好决定是否解决问题。

消息由几个部分组成:

  • 检查颜色和图标:查看代码抄本结果和源代码颜色。在检查运行时错误的情况下:

    • :红色表示一个明确的错误。

    • :橙色表示可能的错误。

    • :格雷表示无法访问的代码。

    • :绿色表示特定错误不会发生。

  • 运行时间检查的描述。

    在前面的示例中,检查确定数组索引是否超出阵列界限。

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

    在该示例中,消息指出数组大小(127),阵列界限(0..126),以及数组索引变量可以在代码中的该点处采用的值范围(0..555)。

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

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

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

在这一点来源带有工具提示的窗格,变量和操作将下划线。

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

  • s8_ret.:您在此之前看到其数据类型和值范围+手术。

    如果在+操作期间发生数据类型转换,则还会在工具提示中看到此转换。

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

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

获得额外的帮助

有时,您需要额外的帮助来实现某些结果。要为所选结果打开帮助页面,请单击“图标。请参见说明结果的代码示例。

找到结果的根本原因

有时,根本原因可能远离显示结果的实际位置。例如,您读取的变量可能是未初始化的,因为初始化无法访问。读取变量时显示缺陷,但根本原因可能是之前的如果或者尽管总是假的条件。

导航源代码

有时,这是结果细节窗格显示导致结果的一系列事件序列。但是,在大多数情况下,您必须通过代码找到自己的导航路线。使用“变量”工具提示,按照浏览代码时遵循变量范围的传播。

int func(int var){/ * var * / ... var  -  = get()的初始范围;/ *新系列var * / ...集合(&var);/ *新系列var * /}

在用户界面中使用这些快速导航路径:

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

    右键单击变量名称来源窗格并选择搜索所有参考。或者,双击变量。这些选项仅执行超过字符串匹配。该选项仅显示特定变量的实例,而不是其他范围内具有相同名称的其他变量。

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

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

  • 从函数导航到呼叫者和分支机构。

    点击icon上的图标结果细节窗格。您可以看到包含结果的函数,其中包含呼叫者和分支机构。单击呼叫者或Callee名称以导航到呼叫站点。双击名称以导航到定义。

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

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

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

  • 浏览全局变量的所有实例。

    点击icon上的图标结果细节窗格。请参阅结果中的所有全局变量以及它们上的读/写操作。

在开始通过代码中的路径导航之前,请确定您正在寻找的内容并选择相应的导航工具。例如:

  • 调查A.非初始化变量检查,您可能希望确保完全没有初始化变量。寻找可变的前一个实例,并查看它是否已初始化。

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

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

有关要查找的其他例子,请参阅代码箴言运行时间检查。导航远离当前结果后,使用icon上的图标结果细节窗格返回该结果。

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

在单独的窗口中导航

如果查看结果需要在源代码中更深入导航,则可以创建一个重复的源代码窗口,该窗口将在导航在原始源代码窗口中导航。

右键单击来源窗格并选择创建重复的代码窗口。右键单击显示重复文件名的选项卡(结束- 奉献1)选择新的垂直组

在原始文件窗口中显示缺陷仍然显示“重复文件”窗口中的导航步骤。调查完成后,关闭重复窗口。

相关话题