Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В WinDbg можно просматривать локальные переменные, введя команды, используя окно "Локальные" или с помощью окна "Контроль".
Командное окно отладчика
Локальные переменные и параметры можно просмотреть, введя команду dv или команду dt в окне команды отладчика.
Открытие окна "Локальные переменные"
В окне "Локальные" отображаются сведения обо всех локальных переменных в текущей области.
Чтобы открыть или переключиться на окно "Локальные" в окне WinDbg, в меню "Вид" выберите "Локальные". (Вы также можете нажать клавиши ALT+3 или выбрать кнопку "Локальные" на панели инструментов. ALT+SHIFT+3 закрывает окно "Локальные".)
На следующем снимке экрана показан пример окна "Локальные переменные".
Окно "Локальные" может содержать четыре столбца. Столбцы "Имя " и "Значение " всегда отображаются, а столбцы "Тип " и "Расположение " являются необязательными. Чтобы отобразить столбцы "Тип " и "Расположение ", выберите кнопки Typecast и Location соответственно на панели инструментов.
Использование окна "Локальные переменные"
В окне "Локальные" можно выполнить следующее:
В столбце "Имя" отображается имя каждой локальной переменной. Если переменная является структурой данных, установите флажок рядом с его именем. Чтобы развернуть или свернуть отображение элементов структуры, отметьте или снимите флажок.
В столбце "Значение " отображается текущее значение каждой переменной.
- Чтобы ввести новое значение для переменной, дважды щелкните текущее значение и введите новое значение или измените старое значение. (Команды выреза, копирования и вставки доступны для редактирования.) Можно ввести любое выражение C++.
- Чтобы сохранить новое значение, нажмите клавишу ВВОД.
- Чтобы отменить новое значение, нажмите клавишу ESC.
- Если ввести недопустимое значение, старое значение будет вновь появиться при нажатии клавиши ВВОД.
Целые числа типа int отображаются как десятичные значения; Целые числа типа UINT отображаются в текущем радиксе. Чтобы изменить текущий радикс, используйте команду n (Set Number Base) в окне команды отладчика.
Столбец Type (если он отображается в окне "Локальные" ) отображает текущий тип данных каждой переменной. Каждая переменная отображается в формате, правильном для собственного типа данных. Структуры данных имеют имена типов в столбце Type . Другие типы переменных отображают "Ввод нового типа" в этом столбце.
Если дважды щелкнуть "Введите новый тип", можно изменить тип, указав новый тип данных. Приведение изменяет текущее отображение этой переменной только в окне "Локальные"; Он не изменяет ничего в отладчике или на целевом компьютере. Кроме того, при вводе нового значения в столбец "Значение ", введенный текст будет проанализирован на основе фактического типа символа, а не любого нового типа, введенного в столбец Type . При закрытии и повторном открытии окна "Локальные" изменения типа данных будут потеряны.
Вы также можете ввести команду расширения в столбце Type . Отладчик передает адрес символа этому расширению и отобразит результирующий результат в ряде свертых строк под текущей строкой. Например, если символ в этой строке является допустимым адресом блока среды потока, можно ввести !teb в столбце Type , чтобы запустить расширение !teb в адресе этого символа.
Столбец Location (если он отображается в окне "Локальные") отображает смещение каждого элемента структуры данных.
Если локальная переменная является экземпляром класса, содержащего Vtables, столбец "Имя " отображает Vtables, и вы можете развернуть Vtables для отображения указателей функции. Если Vtable содержится в базовом классе, который указывает на производную реализацию, отображается нотация _vtcast_Class , чтобы указать элементы, которые добавляются из-за производного класса. Эти члены класса расширяются подобно производному типу.
Локальный контекст определяет, какой набор локальных переменных будет отображаться в окне "Локальные". При изменении локального контекста по какой-либо причине окно "Локальные" автоматически обновляется. По умолчанию локальный контекст соответствует текущей позиции счетчика программы. Дополнительные сведения об изменении локального контекста см. в разделе "Локальный контекст".
В окне "Локальные" есть панель инструментов, содержащая две кнопки (Typecast и Locations) и контекстное меню с дополнительными командами. Чтобы получить доступ к меню, выберите и удерживайте (или щелкните правой кнопкой мыши) заголовок окна или щелкните значок в правом верхнем углу окна. Панель инструментов и меню содержат следующие кнопки и команды.
(Панель инструментов и меню) Typecast включает и отключает отображение столбца Type .
(Панель инструментов и меню) Расположения включают и отключают отображение столбца "Расположение ".
(Только меню) Отображать 16-битные значения как строки в формате Юникода в этом окне. Эта команда включает и отключает глобальный параметр, влияющий на окно "Локальные", окно "Контроль" и выходные данные команды отладчика. Эта команда эквивалентна использованию команды .enable_unicode (включить отображение Юникода).
(Только меню) Всегда отображать числа в радиксе по умолчанию приводит к отображению целых чисел в радиксе по умолчанию вместо отображения их в десятичном формате. Эта команда включает и отключает глобальный параметр, влияющий на окно "Локальные", окно "Контроль" и выходные данные команды отладчика. Эта команда эквивалентна использованию команды .force_radix_output (использовать Radix для целых чисел).
Заметка Команда "Всегда отображать числа в радиусе по умолчанию" не влияет на длинные целочисленные значения. Длинные целые числа отображаются в десятичном формате, если команда .enable_long_status (включить длинное целочисленное число) не задана. Команда .enable_long_status влияет на отображение в окне "Локальные", в окне "Контроль" и в выходных данных команды отладчика; Для этой команды в меню в окне "Локальные" нет эквивалента.
(Только меню) Открытие окна памяти для выбранного значения открывает новое закрепленное окно памяти, которое отображает память, начиная с адреса выбранного выражения.
(Только меню) Вызов dt для выбранного значения памяти запускает команду dt (тип отображения) с выбранным символом в качестве параметра. Результат отображается в окне команды отладчика. Параметр -n автоматически используется для отличия символа от шестнадцатеричного адреса. Другие параметры не используются. Обратите внимание, что содержимое, созданное с помощью этого меню, идентично содержимому, созданному при выполнении команды dt из командной строки, но формат немного отличается.
(Только меню) Панель инструментов включает и отключает панель инструментов.
(Только меню) Закрепление или Открепление вызывает вход окна в закреплённое состояние или выход из него.
(Только меню) Перейдите к новой док-станции закрывает окно "Локальные" и открывает его в новой док-станции.
(Только меню) Установка целевого объекта tab-dock для типа окна недоступна для окна "Локальные". Этот параметр доступен только для окон источника или памяти.
(Только меню) Всегда плавающая область приводит к тому, что окно остается неразрывным, даже если оно перетаскивается в место закрепления.
(Только в меню) Перемещение вместе с рамкой приводит к перемещению окна при перемещении фрейма WinDbg, даже если окно откреплено.
(Только меню) Справка открывает эту тему в документации по средствам отладки для Windows.
(Только меню) Закрывает это окно.
Окно "Наблюдение"
В WinDbg можно использовать окно "Наблюдение" для отображения и изменения локальных переменных. В окне "Наблюдатель" можно отобразить любой список заданных вами переменных. Эти переменные могут включать глобальные переменные и локальные переменные из любой функции. В любое время в окне "Контрольные данные" отображаются значения этих переменных, которые соответствуют области текущей функции. Вы также можете изменить значения этих переменных в окне "Контроль".
В отличие от окна "Локальные", окно "Отслеживание" не зависит от изменений в локальном контексте. Только те переменные, которые определены в области текущего счетчика программ, могут отображаться или изменяться.
Чтобы открыть окно "Просмотр", выберите "Смотреть " в меню "Вид ". Вы также можете нажать клавиши ALT+2 или нажать кнопку "Смотреть " на панели инструментов. ALT+SHIFT+2 закрывает окно "Контрольные значения".
На следующем снимке экрана показан пример окна "Наблюдение".
Окно наблюдения может содержать четыре столбца. Столбцы "Имя " и "Значение " всегда отображаются, а столбцы "Тип " и "Расположение " являются необязательными. Чтобы отобразить столбцы "Тип " и "Расположение ", выберите кнопки Typecast и Location соответственно на панели инструментов.
См. также
Дополнительные сведения об управлении локальными переменными, обзор использования переменных и изменения области и описание других команд, связанных с памятью, см. в разделе "Чтение и запись памяти".