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


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

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

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

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

Открытие окна памяти

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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