Main Content

Call Hierarchy in Polyspace Platform User Interface

This topic focuses on the Polyspace® Platform user interface. To learn about the equivalent pane in the Polyspace desktop user interface, see Call Hierarchy in Polyspace Desktop User Interface.

The Call Hierarchy pane displays the call tree of functions in the source code.

For each function foo, the Call Hierarchy pane lists the functions and tasks that call foo (callers) and those called by foo (callees). The callers are indicated by . The callees are indicated by . The Call Hierarchy pane lists direct function calls and indirect calls through function pointers.

Note

For Polyspace Access™ findings, you might not see all callers or callees of a function, especially for calls through function pointers and dead code.

For instance, Polyspace Access does not display the functions registered with at_exit() and at_quick_exit(), and called by exit() and quick_exit() respectively.

Open the Call Hierarchy pane by selecting the icon in your Results Details pane, or by going to Window > Call Hierarchy.

To update the pane, click a defect on the Results List or CTRL-click a result in the Source Code pane. You see the function containing the defect with its callers and callees.

In this example, the Call Hierarchy pane displays the function generic_validation, and with its callers and callees.

The Call Hierarchy pane shows the generic_validation function followed by its callers and callees. The File column shows names of files where the calls occur and the Stubbed column states if a callee is stubbed.

Tip

To navigate to the call location in the source code, select a caller or callee name

In the Call Hierarchy pane, you can perform these actions:

  • Show/Hide callers and callees — Customize the view to display callers only or callees only. Show or hide callers and callees by clicking this button

    Buttons to show/hide callers and callees

  • Navigate Call Hierarchy — You can navigate the call hierarchy in your source code. For a function, click a caller or callee name to navigate to the caller or callee definition in the source code.

  • Determine if a function is stubbed — From the Stubbed column, you can determine if a function is stubbed. The entries in the column show why a function was stubbed.

    • Automatic: Polyspace cannot find the function definition. For instance, you did not provide the file containing the definition.

    • User specified: You override the function definition by using the option Functions to stub (-functions-to-stub) (Polyspace Code Prover).

    • Lookup table: You verify generated code with functions that return values from specific kinds of lookup tables. You use the option Generate stubs for Embedded Coder lookup tables (-stub-embedded-coder-lookup-table-functions) (Polyspace Code Prover).

    • Std library: The function is a standard library function. You do not provide the function definition explicitly in your Polyspace project.

    • Mapped to std library: You map the function to a standard library function by using the option -code-behavior-specifications (Polyspace Code Prover).

    • Compilation error: There is a compilation error in the function body, and therefore the function cannot be analyzed.