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

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

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

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

Примечание

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

Примечание

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

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

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

    Окно стека вызовов

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

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

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

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

[<External Code>]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Отображение стека вызовов на карте кода

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

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

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

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

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

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

См. статью Указание файлов символов (.pdb) и файлов с исходным кодом в отладчике Visual Studio.

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

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

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

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

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

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

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

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

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

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

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

См. также