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


Просмотр и редактирование памяти в WinDbg (классическая модель)

В WinDbg можно просматривать и изменять память, введя команды или используя окно "Память".

Командное окно отладчика

Чтобы просмотреть память, введите одну из команд Display Memory в окне Команда отладчика. Вы можете изменить память, введя одну из команд Ввод значений в окне Команда отладчика. Дополнительные сведения см. в разделах Доступ к памяти по виртуальному адресу и Доступ к памяти по физическому адресу.

Открытие окна "Память"

Чтобы открыть окно Память, выберите Память в меню Вид . (Можно также нажать клавиши ALT+5 или нажать кнопку Память (снимок экрана: кнопка

На следующем снимке экрана показан пример окна "Память".

Снимок экрана: пример окна памяти в WinDbg.

Использование окна памяти

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

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

В окне Память можно выполнить следующие действия.

  • Для записи в память выберите в окне Память и введите новые данные. Вы можете редактировать только шестнадцатеричные данные— нельзя напрямую изменять символы ASCII и Юникода. Изменения вступают в силу сразу после ввода новых сведений.

  • Чтобы просмотреть другие разделы памяти, используйте кнопки Назад и Далее на панели инструментов окна Память или нажмите клавиши PAGE UP или PAGE DOWN. Эти кнопки и клавиши отображают непосредственно предшествующие или следующие разделы памяти. Если вы запрашиваете недопустимую страницу, появится сообщение об ошибке.

  • Для перемещения в окне используйте клавиши СТРЕЛКА ВПРАВО, СТРЕЛКА ВЛЕВО, СТРЕЛКА ВВЕРХ и СТРЕЛКА ВНИЗ. Если вы используете эти клавиши для перемещения со страницы, отобразится новая страница. Перед использованием этих ключей необходимо изменить размер окна Память, чтобы в нем не было полос прокрутки. Этот размер позволяет различать фактическое ребро страницы и вырезание окна.

  • Чтобы изменить расположение просматриваемой памяти, введите новый адрес в поле адреса в верхней части окна Память. Обратите внимание, что окно Память обновляет свое отображение при вводе адреса, поэтому вы можете получить сообщения об ошибках до завершения ввода адреса.

    Примечание Адрес, который вы вводите в поле , интерпретируется в текущем радиксе. Если текущий радикс не равен 16, следует префиксировать шестнадцатеричный адрес с 0x. Чтобы изменить радикс по умолчанию, используйте команду n (Задать числовую базу) в окне Команда отладчика. Отображение в самом окне Памяти не зависит от текущего радикса.

  • Чтобы изменить тип данных, используемый окном для отображения памяти, используйте меню Формат отображения на панели инструментов окна Память. Поддерживаемые типы данных включают короткие слова, двойные слова и четырехсловие; короткие, длинные и четырехзначные целые числа и целые числа без знака; 10-байтовые, 16-байтовые, 32-разрядные и 64-разрядные реальные числа; Символы ASCII; Символы Юникода; и шестнадцатеричные байты. Отображение шестнадцатеричных байтов также включает символы ASCII.

В окне Память есть панель инструментов, содержащая две кнопки, меню и поле, а также контекстное меню с дополнительными командами. Чтобы открыть меню, выберите и удерживайте (или щелкните правой кнопкой мыши) заголовок окна или щелкните значок в правом верхнем углу окна на панели инструментов. ALT+SHIFT+5 закрывает активное окно память.

  • (Только на панели инструментов) Поле адреса позволяет указать новый адрес или смещение. Точное значение этого поля зависит от типа просматриваемой памяти. Например, если вы просматриваете виртуальную память, поле позволяет указать новый виртуальный адрес или смещение.

  • (Только на панели инструментов) Формат отображения позволяет выбрать новый формат отображения.

  • (Панель инструментов и меню) Предыдущий (на панели инструментов) и Предыдущая страница (в контекстном меню) приводят к отображению предыдущего раздела памяти.

  • (Панель инструментов и меню) Далее (на панели инструментов) и Следующая страница (в контекстном меню) приводят к отображению следующего раздела памяти.

  • (Только меню) Панель инструментов включает и выключает панель инструментов.

  • (Только меню) Автоматическое заполнение столбцов гарантирует, что количество столбцов, отображаемых в окне Память, соответствует ширине окна Память.

  • (Только меню) Закрепление или открепить приводит к тому, что окно переходит в закрепленное состояние или выходит из нее.

  • (Только меню) При переходе на новую док-станцию окно Память закрывается и открывается в новой док-станции.

  • (Только меню) Установка в качестве целевого объекта табуляции для типа окна задает выбранное окно памяти в качестве целевого объекта табуляции для других окон памяти. Все окна памяти, открываемые после выбора в качестве целевого объекта док-станции табуляции, автоматически группируются с этим окном в коллекции с вкладками.

  • (Только меню) При постоянном плавании окно остается незастыковатым, даже если оно перетаскивается в место стыковки.

  • (Только меню) Перемещение с помощью кадра приводит к перемещению окна при перемещении кадра WinDbg, даже если окно не закреплено.

  • (Только меню) Откроется диалоговое окно Параметры памяти , описанное в следующем разделе этой статьи.

  • (Только меню) Справка открывает этот раздел в документации по средствам отладки для Windows.

  • (Только меню) Закрыть это окно закрывается.

Диалоговое окно "Параметры памяти"

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

В режиме ядра в этом диалоговом окне доступно шесть типов памяти: виртуальная память, физическая память, данные шины, данные управления, ввод-вывод (сведения о портах ввода-вывода) и MSR (сведения о регистрах для конкретной модели). Выберите вкладку, соответствующую сведениям, к которым вы хотите получить доступ.

В пользовательском режиме доступна только вкладка Виртуальная память .

Каждая вкладка позволяет указать память, которую вы хотите отобразить:

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

  • На вкладке Физическая память в поле Смещение укажите физический адрес начала диапазона памяти, который требуется просмотреть. В окне Память может отображаться только описанная кэшируемая физическая память. Если вы хотите отобразить физическую память с другими атрибутами, используйте команду d* (Display Memory) или расширение !d\* .

  • На вкладке Данные шины в меню Тип данных шины укажите тип данных шины. Затем используйте поля Номер шины, Номер слота и Смещение , чтобы указать данные шины, которые требуется просмотреть.

  • На вкладке Данные элемента управления используйте текстовые поля Обработчик и Смещение , чтобы указать данные элемента управления, которые требуется просмотреть.

  • На вкладке Ввод-вывод в меню Тип интерфейса укажите тип интерфейса ввода-вывода. Используйте поля Номер шины, Адресное пространство и Смещение , чтобы указать данные, которые требуется просмотреть.

  • На вкладке MSR в поле MSR укажите регистр конкретной модели, который требуется просмотреть.

Каждая вкладка также содержит меню Формат отображения . Это меню имеет тот же эффект, что и меню Формат отображения в окне Память.

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

Дополнительные сведения

Дополнительные сведения об обработке памяти и описание других команд, связанных с памятью, см. в разделе Чтение и запись памяти.