Просмотр стека вызовов и использование окна "Стек вызовов" в отладчике

Просмотр стека вызовов и использование окна "Стек вызовов" в отладчике

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

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

[Frames below may be incorrect and/or missing, no symbols loaded for name.dll]

Окно Стек вызовов аналогично перспективе "Отладка" в некоторых интегрированных средах разработки, например Eclipse.

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

Просмотр стека вызовов в отладчике

Во время отладки в меню Отладка выберите Окна > Стек вызовов.

Желтая стрелка указывает на кадр стека, в котором находится указатель выполнения. По умолчанию это кадр стека, сведения которого отображаются в окнах: исходного кода, Локальные, Контрольные значения, Видимые и Дизассемблированный код. Чтобы изменить контекст отладчика на другой кадр стека, переключитесь на другой кадр стека.

Отображение непользовательского кода в окне "Стек вызовов"

  • Щелкните правой кнопкой мыши в окне Стек вызовов и выберите в контекстном меню пункт Показать внешний код.

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

Переключение на другой кадр стека (изменение контекста отладчика)

В окне Стек вызовов щелкните правой кнопкой кадр стека, код и данные которого нужно просмотреть.

Или можно дважды щелкнуть кадр в окне Стек вызовов, чтобы переключиться на этот кадр.

Выберите пункт Перейти к кадру.

Рядом с выбранным кадром стека появится зеленая стрелка с фигурным концом. Указатель выполнения остается в исходном кадре, который по-прежнему отмечен желтой стрелкой. При выборе команд Шаг или Продолжить в меню Отладка выполнение продолжится с исходного, а не с выбранного кадра.

Просмотр исходного кода функции в стеке вызовов

  • В окне Стек вызовов щелкните правой кнопкой мыши функцию, исходный код которой нужно увидеть, и выберите пункт К исходному коду.

Выполнение кода до определенной функции из окна "Стек вызовов"

  • В окне Стек вызовов выберите функцию, щелкните ее правой кнопкой мыши и выберите команду Выполнить до курсора.

Установка точки останова в точке выхода вызова функции

  • См. раздел Установка точки останова в функции стека вызовов.

Отображение вызовов в другой поток или из него

  • Щелкните правой кнопкой мыши в окне Стек вызовов и выберите пункт Включить вызовы между потоками.

Визуальная трассировка стека вызовов

В Visual Studio Enterprise (только) можно просматривать карты кода для стека вызовов во время отладки.

В окне Стек вызовов откройте контекстное меню. Выберите Показать стек вызовов на карте кода (CTRL + SHIFT + ` ).

Просмотр дизассемблированного кода функции в стеке вызовов (C#, C++, Visual Basic, F#)

  • В окне Стек вызовов щелкните правой кнопкой мыши функцию, дизассемблированный код которой нужно увидеть, и выберите пункт К дизассемблированному коду.

Включение или отключение отображения дополнительных сведений

  • Щелкните правой кнопкой мыши в окне Стек вызовов и установите или снимите флажок Показать<the information that you want> .

Загрузка символов для модуля (C#, C++, Visual Basic, F#)

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

Чтобы загрузить символы

В окне Стек вызовов щелкните правой кнопкой какой-либо кадр стека, для которого не загружены символы. Кадр затеняется.

Укажите на параметр Загрузить символы, а затем выберите Серверы символов (Майкрософт) (если доступно) или перейдите по пути к символам.

Установка пути к символам

В окне Стек вызовов выберите пункт Параметры символов из контекстного меню.

Появится диалоговое окно Параметры, открытое на странице Символы.

Выберите Параметры символов.

В диалоговом окне Параметры щелкните значок "Папка".

В поле Места размещения файлов символов (.pdb) появится курсор.

Введите путь к каталогу с символами на компьютере, на котором производится отладка. При локальной и удаленной отладке это путь на локальном компьютере.

Нажмите кнопку OK, чтобы закрыть диалоговое окно Параметры.

📎📎📎📎📎📎📎📎📎📎