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

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

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

Примечание

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

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

Вы открываете панель Call Hierarchy при помощи значка в ваших деталях результата. Обновить панель:

  • Можно кликнуть по дефекту, или на 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 можно выполнить эти действия:

  •  Покажите/Скройте Вызывающим сторонам и Вызываемым

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

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