主要内容

Polyspace 桌面端用户界面中的调用层次结构

本主题侧重于 Polyspace® 桌面端用户界面。若要了解 Polyspace Access™ Web 界面中的等效窗格,请参阅 Polyspace Access Web 界面中的调用层次结构 (Polyspace Access)

调用层次结构窗格显示源代码中函数的调用树。

对于每个函数 foo调用层次结构窗格会列出调用 foo 的函数和任务(调用方)以及被 foo 调用的函数和任务(被调用方)。调用方以 function caller icon(函数)或 tasks caller icon(任务)表示。被调用方以 function callee icon(函数)或 tasks callee icon(任务)表示。调用层次结构窗格会列出直接函数调用和通过函数指针进行的间接调用。间接调用以 图标显示。不可达调用以灰色函数名称显示。

要打开此窗格,请在 Polyspace 桌面端用户界面中选择结果详细信息窗格中的 function call tree button 按钮。

要更新此窗格:

  • 您可以在结果列表窗格中点击运行时检查。您会看到包含该检查的函数及其调用方和被调用方。

  • 您可以在源代码中点击某个函数名称。您会看到该函数的调用方和被调用方。如果该函数名称还显示运行时检查颜色,请不要点击该函数名称,而应该右键点击该名称并选择转至定义

在此示例中,调用层次结构窗格显示函数 generic_validation 及其调用方和被调用方。

Call Hierarchy pane with generic_validation callers and callees

调用层次结构窗格中的行号是指源代码中的不同行:

  • 对于函数名称,行号指向函数定义的开头。generic_validation 的定义从第 69 行开始。

  • 对于被调用方名称,行号指向该被调用方被调用时所在的行。被调用方 functional_rangesgeneric_validation 在第 86 行调用。

  • 对于调用方名称,行号指向该调用方调用函数所在的行。调用方 main 在第 50 行调用 generic_validation

提示

要导航到源代码中的调用位置,请选择调用方或被调用方名称

调用层次结构窗格中,您可以执行以下操作。

显示或隐藏调用方和被调用方

自定义视图以仅显示调用方或仅显示被调用方。点击以下按钮来显示或隐藏调用方和被调用方:

show/hide callers and callees button

导航调用层次结构

您可以在源代码中导航调用层次结构。对于函数,双击调用方或被调用方名称可导航到源代码中该调用方或被调用方的定义。

确定函数是否已插桩

已插桩列中,您可以确定函数是否已插桩。该列中的条目显示函数插桩的原因。

有关详细信息,请参阅 Code Prover Assumptions About Stubbed Functions

查看程序的整个调用层次结构

要查看程序的整个调用层次结构,请在窗格中点击 main 函数。右键点击调用层次结构中的节点,然后选择展开所有节点

Call Hierarchy with Expand All Nodes enabled

您可以根据需要展开节点以关注调用层次结构的特定部分,而不用一次查看整个调用层次结构。