exponenta event banner

Иерархия вызовов

На панели «Иерархия вызовов» отображается дерево функций в исходном коде.

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

Примечание

В Polyspace ® Bug Finder™ могут отображаться не все вызывающие или вызывающие абоненты функции, особенно для вызовов через указатели функций и мертвый код.

Например, Polyspace Bug Finder не отображает функции, зарегистрированные в at_exit() и at_quick_exit(), и вызывается по exit() и quick_exit() соответственно.

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

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

  • Можно щелкнуть правой кнопкой мыши имя функции и выбрать Перейти к определению (Go To Definition). Отображаются вызывающие и вызывающие абоненты функции.

В этом примере на панели «Иерархия вызовов» отображается функция. generic_validationи со своими вызывающими и вызываемыми абонентами.

Номер строки в области Иерархия вызовов ссылается на другую строку в исходном коде:

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

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

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

Совет

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

На панели Иерархия вызовов можно выполнить следующие действия:

  •  Показать/скрыть вызывающих и вызывающих абонентов

  •  Навигация по иерархии вызовов

  •  Определить, является ли функция упорной