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

В этом разделе описывается использование команд отладчика. WinDbg — это отладчик, который можно использовать для анализа аварийных дампов, отладки динамического пользовательского режима и кода в режиме ядра, а также проверки регистров ЦП и памяти. Дополнительные сведения см. в разделе "Обзор WinDbg".

Сведения об установке отладчика см. в разделе "Установка отладчика Windows".

Сведения о начале работы с WinDbg см. в статье "Начало работы с отладкой Windows".

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

Для WinDbg "Окно командной строки отладчика" ссылается на окно с меткой "Command" в строке заголовка. Это окно содержит две области:

  • В небольшой нижней области введите команды.

  • В большой верхней области вы просматриваете выходные данные команды.

Это окно всегда открыто в начале сеанса отладки. Вы можете повторно открыть или переключиться в это окно, выбрав команду в меню "Вид", нажав клавиши ALT+1 или нажав кнопку "Команда" (ALT+1) (Снимок экрана: кнопка командного окна отладчика.

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

KD или CDB

Для KD или CDB "Командное окно отладчика" ссылается на все окно. Введите команды в строке в нижней части окна. Если команды имеют какие-либо выходные данные, окно отображает выходные данные, а затем снова отображает запрос.

Командная строка отладчика

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

2:005>

В предыдущем примере 2 — текущий номер процесса, а 005 — текущий номер потока.

При присоединении отладчика к нескольким компьютерам системный номер включается до числа процесса и потока, как показано в следующем примере.

3:2:005>

В этом примере 3 — текущий номер системы, 2 — текущий номер процесса, а 005 — текущий номер потока.

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

kd>

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

0: kd>

Если отладчик занят обработкой ранее выданной команды, новые команды временно не обрабатываются, хотя их можно добавить в буфер команд. Кроме того, вы по-прежнему можете использовать клавиши управления в KD и CDB, и вы по-прежнему можете использовать команды меню и сочетания клавиш в WinDbg. Если KD или CDB находится в этом состоянии занятости, запрос не отображается. Если WinDbg находится в этом состоянии занятости, вместо запроса появится следующий индикатор:

*BUSY*

Для добавления текста в эту строку можно использовать команду PCMD (Set Prompt Command ).

Виды команд

WinDbg, KD и CDB поддерживают различные команды. Некоторые команды совместно используются между отладчиками, а некоторые доступны только для одного или двух отладчиков.

Некоторые команды доступны только в динамической отладке, а другие команды доступны только при отладке файла дампа.

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

Некоторые команды доступны только в том случае, если целевой объект работает на определенных процессорах. Дополнительные сведения обо всех командах и их ограничениях см. в разделе "Команды отладчика".

Редактирование, повторение и отмена команд

При вводе команды можно использовать стандартные ключи редактирования:

  • Используйте клавиши СТРЕЛКА ВВЕРХ и СТРЕЛКА ВНИЗ, чтобы найти предыдущие команды.

  • Измените текущую команду с помощью клавиш BACKSPACE, DELETE, INSERT и СТРЕЛКА ВЛЕВО и СТРЕЛКА ВПРАВО.

  • Нажмите клавишу ESC, чтобы очистить текущую строку.

Вы можете нажать клавишу TAB, чтобы автоматически завершить запись текста. В любом из отладчиков нажимайте клавишу TAB после ввода хотя бы одного символа, чтобы автоматически завершить команду. Нажмите клавишу TAB несколько раз, чтобы выполнить циклический цикл по параметрам завершения текста, а затем удерживайте клавишу SHIFT и нажмите клавишу TAB, чтобы переключиться назад. Вы также можете использовать подстановочные знаки в тексте и нажать клавишу TAB, чтобы развернуть до полного набора параметров завершения текста. Например, если вы вводите fo*!ba , а затем нажимаете клавишу TAB, отладчик расширяет набор всех символов, начинающихся с ba, во всех модулях с именами модулей, начинающимися с "fo". В качестве другого примера можно выполнить все команды расширения, имеющие prcb в них, введя !*prcb и нажав клавишу TAB.

При использовании клавиши TAB для выполнения завершения текста, если фрагмент текста начинается с точки (.), текст сопоставляется с командой dot. Если фрагмент текста начинается с восклицательного знака (!), текст сопоставляется с командой расширения. В противном случае текст сопоставляется с символом. При использовании клавиши TAB для ввода символов нажатие клавиши TAB завершает код и символы типов и имена модулей. Если имя модуля не очевидно, то будут завершены локальные символы и имена модулей. Если задан шаблон модуля или модуля, завершение символов завершает код и символы типа из всех совпадений.

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

Максимальная длина команды — 4096 символов. Однако если вы управляете отладчиком пользовательского режима из отладчика ядра, максимальная длина строки составляет 512 символов.

В CDB и KD нажмите клавишу ВВОД, чтобы повторить предыдущую команду. В WinDbg можно включить или отключить это поведение. Дополнительные сведения об этом поведении см. в разделе ВВОД (повторная последняя команда).

Если последняя команда, выданная вами, представляет длинное отображение и вы хотите отключить ее, используйте клавиши CTRL+C в CDB или KD. В WinDbg используйте отладку | Разорвать или нажать клавиши CTRL+BREAK.

При отладке в режиме ядра можно отменить команды с клавиатуры целевого компьютера, нажав клавиши CTRL+C.

Для очистки всего текста из командного окна отладчика можно использовать команду CLS (очистить экран). Эта команда очищает всю историю команд. В WinDbg можно очистить журнал команд с помощью команды Edit | Снимите команду "Вывод команд" или выберите "Очистить выходные данные команды" в контекстном меню окна команды отладчика.

Синтаксис выражений

Многие команды и команды расширения принимают выражения в качестве аргументов. Отладчик вычисляет эти выражения перед выполнением команды. Дополнительные сведения о выражениях см. в разделе "Оценка выражений".

Aliases

Псевдонимы — это текстовые макросы, которые можно использовать, чтобы избежать необходимости повторно вводить сложные фразы. Существует два типа псевдонимов. Дополнительные сведения об псевдонимах см. в разделе "Использование псевдонимов".

Само повторяющиеся команды

Для повторения действия или условного выполнения других команд можно использовать следующие команды:

Дополнительные сведения о каждой команде см. в отдельных разделах команд.

Управление прокруткой

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

При использовании CDB или KD любая запись клавиатуры автоматически прокручивает окно команды отладчика вниз вниз.

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

Функции текста WinDbg

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

  • Команда оболочки Word в контекстном меню включает и отключает состояние оболочки слова. Эта команда влияет на все окно, а не только команды, которые вы используете после изменения этого состояния. Так как многие команды и расширения создают отформатированные экраны, обычно не рекомендуется обтекать словами.

  • Изменение | Команда "Добавить в меню вывода команд" добавляет комментарий в окне команды отладчика. Команда Add to command output command в контекстном меню имеет тот же эффект.

  • Вы можете настроить цвета, используемые для текста и фона окна команды отладчика. Можно указать разные цвета для разных типов текста. Например, можно отобразить выходные данные автоматического регистра в одном цвете, сообщения об ошибках в другом цвете и сообщения DbgPrint в третьем цвете.

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

Удаленная отладка

При выполнении удаленной отладки с помощью отладчика клиент отладки может получить доступ к ограниченному количеству команд. Чтобы изменить количество команд, к которым клиент может получить доступ, используйте параметр командной строки -clines или переменную среды _NT_DEBUG_HISTORY_SIZE.