Вызовите иерархию в пользовательском интерфейсе рабочего стола Polyspace

Эта тема фокусируется на Polyspace® настольный пользовательский интерфейс. Чтобы узнать об эквивалентной панели в Polyspace доступ к веб-интерфейсу, смотрите Иерархию Вызова в Polyspace доступ к веб-интерфейсу.

Панель Call Hierarchy отображает дерево вызова функций в исходном коде.

Для каждого функционального foo, панель Call Hierarchy перечисляет функции и задачи тот вызов foo (вызывающие стороны) и вызванные foo (вызываемые). Вызывающие стороны обозначаются (функциями) или (задачами). Вызываемые обозначаются (функциями) или (задачами). Панель Call Hierarchy перечисляет прямые вызовы функции и косвенные вызовы через указатели функции. Косвенные вызовы показывают со значком. Вызовы, которые недостижимы, показывают с именем функции серого цвета.

Чтобы открыть эту панель, в пользовательском интерфейсе рабочего стола Polyspace, нажимают кнопку на панели Result Details.

Обновить панель:

  • Можно кликнуть по проверке на этапе выполнения, или на Results List или на панели Source. Вы видите, что функция содержит проверку со своими вызывающими сторонами и вызываемыми.

  • Можно кликнуть по имени функции в исходном коде. Вы видите вызывающие стороны и вызываемых функции. Если имя функции также показывает, что цвет проверки на этапе выполнения, вместо того, чтобы кликнуть по имени функции, щелкает правой кнопкой по имени и выбирает Go To Definition.

В этом примере панель Call Hierarchy отображает функциональный generic_validation, и его вызывающие стороны и вызываемые.

Номер строки в панели Call Hierarchy относится к различной линии в исходном коде:

  • Для имени функции номер строки относится к началу функционального определения. Определение generic_validation начинается на линии 69.

  • Для имени вызываемого номер относится к линии, где вызываемый называется. Вызываемый functional_ranges вызван generic_validation на линии 86.

  • Для имени вызывающей стороны номер относится к линии, где вызывающая сторона вызывает функцию. Вызывающая сторона main вызовы generic_validation на линии 50.

Совет

Чтобы перейти к местоположению вызова в исходном коде, выберите имя вызывающей стороны или вызываемого

В панели Call Hierarchy можно выполнить эти действия.

Покажите или скройте вызывающие стороны и вызываемых

Настройте представление, чтобы отобразить вызывающие стороны только или вызываемых только. Покажите или скройте вызывающие стороны и вызываемых путем нажатия этой кнопки:

Переместитесь по иерархии вызова

Можно переместиться по иерархии вызова в исходном коде. Для функции дважды кликните имя вызывающей стороны или вызываемого, чтобы перейти к определению вызывающей стороны или вызываемого в исходном коде.

Определите, заблокирована ли Функция

Можно определить из столбца Stubbed, если функция заблокирована. Записи в столбце показывают, почему функция была заблокирована.

  • Automatic: Polyspace не может найти функциональное определение. Например, вы не обеспечили файл, содержащий определение.

  • User specified: Вы заменяете функциональное определение при помощи опции Functions to stub (-functions-to-stub).

  • Lookup table: Вы проверяете сгенерированный код с функциями что возвращаемые значения от определенных видов интерполяционных таблиц. Вы используете опцию Generate stubs for Embedded Coder lookup tables (-stub-embedded-coder-lookup-table-functions).

  • Std library: функция является стандартной библиотечной функцией. Вы не предоставляете функциональное определение явным образом в вашем проекте Polyspace.

  • Mapped to std library: Вы сопоставляете функцию со стандартной библиотечной функцией при помощи опции -code-behavior-specifications.

Для получения дополнительной информации смотрите Предположения О Заблокированных Функциях.

Смотрите целую иерархию вызова программы

Чтобы видеть целую иерархию вызова вашей программы, на панели Source, нажимают main функция. Щелкните правой кнопкой по узлу по иерархии вызова и выберите Expand All Nodes.

Вместо того, чтобы видеть целую иерархию вызова целиком, можно расширить узлы по мере необходимости, чтобы фокусироваться на определенном срезе иерархии вызова.