Практическое руководство. Использование окна стека вызова
С помощью окна Стек вызовов можно просматривать вызовы функций и процедур, которые в данный момент находятся в стеке.
В окне Стек вызовов отображается имя каждой функции и язык программирования, на котором она написана.Имя функции или процедуры может сопровождаться дополнительной информацией. такой как имя модуля, номер строки, смещение в байтах и имена, типы и значения параметров.Отображение этих дополнительных сведений может быть включено или отключено.
Желтая стрелка указывает на кадр стека, в котором находится указатель выполнения.По умолчанию это фрейм, сведения которого отображаются в окнах: исходного кода, Дизассемблированный код , Локальные , Контрольные значения и Видимые.Если вы хотите изменить контекст на другой кадр стека, можно сделать это в окне Стек вызовов.
Если символы отладки недоступны для части стека вызовов, в окне Стек вызовов может не получиться отобразить правильные сведения об этой части стека вызовов.Появится следующая запись:
[Фреймы ниже могут быть неправильными и/или отсутствовать, не загружены символы для имя.dll]
В управляемом коде по умолчаниюокно Стек вызовов скрывает сведения о непользовательском коде.Следующая запись отображается вместо скрытой информации:
[<External Code>]
Непользовательский код — это любой код, кроме "Моего кода". Дополнительные сведения о "Моем коде" см. в разделе [NIB] 12/13 Практическое руководство. Переход в пошаговый режим выполнения "Только мой код".В контекстном меню можно выбрать отображение сведений стека вызовов, касающихся кода, не написанного пользователем.
С помощью контекстного меню можно выбрать, следует ли отображать вызовы между потоками.
Примечание |
---|
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров и выпуска.Чтобы изменить параметры, выберите в меню Сервис команду Импорт и экспорт параметров.Дополнительные сведения см. в разделе Параметры Visual Studio. |
Чтобы открыть окно "Стек вызовов" в режиме прерывания или в режиме выполнения
- В меню Отладка выберите пункт Окна, а затем Стек вызовов.
Чтобы включить или отключить отображение дополнительных сведений
- Щелкните правой кнопкой мыши в окне Стек вызовов и в контекстном меню установите или снимите флажок Показать <требуемые сведения>.
Чтобы отобразить в окне "Стек вызовов" фреймы кода, не написанного пользователем
- Щелкните правой кнопкой мыши в окне Стек вызовов и выберите в контекстном меню пункт Показать внешний код.
Чтобы перейти к другому кадру стека
В окне Стек вызовов щелкните правой кнопкой фрейм, код и данные которого нужно просмотреть.
Выберите пункт Перейти к фрейму.
Зеленая стрелка с фигурным концом появится рядом с выбранным фреймом.Указатель выполнения остается в исходном кадре, который по-прежнему отмечен желтой стрелкой.При выборе команд Шаг или Продолжить в меню Отладка выполнение продолжится с исходного, а не с выбранного фрейма.
Чтобы отобразить вызовы в другой поток или из него
- Щелкните правой кнопкой мыши в окне Стек вызовов и выберите пункт Включить вызовы между потоками.
Чтобы просмотреть исходный код функции в стеке вызовов
- В окне Стек вызовов щелкните правой кнопкой мыши функцию, исходный код которой нужно увидеть, и выберите пункт К исходному коду.
Чтобы просмотреть дизассемблированный код функции в стеке вызовов
- В окне Стек вызовов щелкните правой кнопкой мыши функцию, дизассемблированный код которой нужно увидеть, и выберите пункт К дизассемблированному коду.
Чтобы выполнить код вплоть до определенной функции из окна "Стек вызовов"
- См. раздел Выполнение до заданной функции.
Чтобы задать точка останова в точке выхода вызова функции
- См. раздел Практическое руководство. Установка точки останова при вызове функции в окне стека вызовов.
Чтобы загрузить символы для модуля
- В окне Стек вызовов щелкните правой кнопкой мыши кадр с модулем, символы которого нужно перезагрузить, и выберите пункт Загрузить символы.
Загрузка символов
В окне Стек вызовов можно загружать символы отладки для кода, для которого в данный момент нет загруженных отладочных символов.Это могут быть символы платформы .NET Framework или системные символы, загруженные с общедоступных серверов символов корпорации Майкрософт, или символы в каталоге символов на компьютере, на котором производится отладка.
Дополнительные сведения см. в разделах [УСТАРЕЛО] Практическое руководство. Использование сервера символов и [УСТАРЕЛО] Практическое руководство. Указание мест расположения символов и поведения загрузки.
Чтобы загрузить символы
В окне Стек вызовов щелкните правой кнопкой какой-либо кадр, для которого не загружены символы.Кадр затеняется.
Выберите пункт Загрузить символы из и затем Серверы символов Майкрософт или Путь к символам.
Установка пути к символам
В Стек вызовов окно, выберите Параметры символов из контекстного меню.
Появится диалоговое окно Параметры, открытое на странице Символы.
Выберите пункт Параметры символов.
В диалоговом окне Параметры щелкните значок "Папка".
В поле Места размещения файлов символов (.pdb) появится курсор.
Введите путь к каталогу с символами на компьютере, на котором производится отладка.В случае локальной отладки это будет локальный компьютер.В случае удаленной отладки это удаленный компьютер.
Нажмите кнопку ОК, чтобы закрыть диалоговое окно Параметры.
См. также
Задачи
[УСТАРЕЛО] Практическое руководство. Использование сервера символов
[УСТАРЕЛО] Практическое руководство. Указание мест расположения символов и поведения загрузки
Ссылки
Практическое руководство. Изменение числового формата в окнах отладчика