Поделиться через


Практическое руководство. Использование окна стека вызова

Обновлен: Ноябрь 2007

Этот раздел применим для следующих версий.

Выпуск

Visual Basic

C#

C++

Web Developer

Экспресс-выпуск

Тема применяется Тема применяется

Тема применяется

Тема применяется

Standard

Тема применяется

Тема применяется

Тема применяется

Тема применяется

Pro и Team

Тема применяется

Тема применяется

Тема применяется

Тема применяется

Условные обозначения:

Тема применяется

Применимо

Тема не применяется

Неприменимо

Тема применяется, но команда по умолчанию сокрыта

Команда или команды по умолчанию скрыты.

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

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

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

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

[Фреймы ниже могут быть неправильными и/или отсутствовать, не загружены символы для имя.dll]

Окно "Стек вызовов" для управляемого кода по умолчанию скрывает сведения о непользовательском коде. Следующая запись отображается вместо скрытой информации:

[<External Code>]

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

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

a3694ts5.alert_note(ru-ru,VS.90).gifПримечание.

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

Чтобы открыть окно "Стек вызовов" в режиме прерывания или в режиме выполнения

  • В меню Отладка выберите пункт Окна, а затем Cтек вызовов.

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

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

Чтобы отобразить в окне "Стек вызовов" фреймы кода, не написанного пользователем

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

Чтобы перейти к другому кадру стека

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

  2. Выберите пункт Перейти к фрейму.

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

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

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

Чтобы просмотреть исходный код функции в стеке вызовов

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

Чтобы просмотреть дизассемблированный код функции в стеке вызовов

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

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

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

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

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

Загрузка символов

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

Дополнительные сведения см. в разделах Практическое руководство. Использование сервера символов и Практическое руководство. Установка пути к символам.

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

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

  2. Выберите пункт Загрузить символы из и затем Серверы символов Майкрософт или Путь к символам.

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

  1. В окне Модули щелкните правой кнопкой мыши любой модуль.

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

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

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

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

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

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

См. также

Задачи

Практическое руководство. Использование сервера символов

Практическое руководство. Установка пути к символам

Основные понятия

Смешанный код и отсутствующие данные в окне стека вызовов

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

Ссылки

Практическое руководство. Изменение числового формата в окнах отладчика