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

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

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

Примечание

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

Для образца 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.

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

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

Совет

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

На панели Call Hierarchy можно выполнить следующие действия:

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

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

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