Polyspace 桌面端用户界面中的调用层次结构
本主题侧重于 Polyspace® 桌面端用户界面。若要了解 Polyspace Access™ Web 界面中的等效窗格,请参阅 Polyspace Access Web 界面中的调用层次结构 (Polyspace Access)。
调用层次结构窗格显示源代码中函数的调用树。
对于每个函数 foo,调用层次结构窗格会列出调用 foo 的函数和任务(调用方)以及被 foo 调用的函数和任务(被调用方)。调用方以
(函数)或
(任务)表示。被调用方以
(函数)或
(任务)表示。调用层次结构窗格会列出直接函数调用和通过函数指针进行的间接调用。间接调用以
图标显示。
您可以使用结果详细信息中的
图标打开调用层次结构窗格。要更新此窗格:
您可以在结果列表或源窗格中点击某个缺陷。您可以看到包含该缺陷的函数及其调用方和被调用方。
您可以右键点击某个函数的名称并选择转至定义。您会看到该函数的调用方和被调用方。
在此示例中,调用层次结构窗格显示函数 generic_validation 及其调用方和被调用方。

调用层次结构窗格中的行号是指源代码中的不同行:
对于函数名称,行号指向函数定义的开头。
generic_validation的定义从第 69 行开始。对于被调用方名称,行号指向该被调用方被调用时所在的行。被调用方
functional_ranges由generic_validation在第 86 行调用。对于调用方名称,行号指向该调用方调用函数所在的行。调用方
main在第 50 行调用generic_validation。
提示
要导航到源代码中的调用位置,请选择调用方或被调用方名称
“调用层次结构”窗格中支持的操作
在调用层次结构窗格中,您可以执行以下操作。
显示或隐藏调用方和被调用方
自定义视图以仅显示调用方或仅显示被调用方。点击以下按钮来显示或隐藏调用方和被调用方

导航调用层次结构
您可以在源代码中导航调用层次结构。对于函数,双击调用方或被调用方名称可导航到源代码中该调用方或被调用方的定义。
确定函数是否已插桩
在已插桩列中,您可以确定函数是否已插桩。该列中的条目显示函数插桩的原因。
自动:Polyspace 找不到函数定义。例如,您没有提供包含函数定义的文件。
标准库:该函数是标准库函数。您没有在 Polyspace 工程中明确提供函数定义。
映射到标准库:您使用了
-code-behavior-specifications选项将函数映射到标准库函数。
Bug Finder 中“调用层次结构”的显示限制
在 Polyspace Bug Finder™ 中,您可能看不到某个函数的所有调用方或被调用方,尤其是通过函数指针和死代码进行的调用。
例如,调用层次结构窗格:
不显示使用
at_exit()和at_quick_exit()注册并分别由exit()和quick_exit()调用的函数。可能不会显示通过大型函数指针数组进行的所有函数调用。
可能不会显示所有对 C++
virtual函数的调用。