Использование команд отладчика
В этом разделе описывается использование команд отладчика. 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
Псевдонимы — это текстовые макросы, которые можно использовать, чтобы избежать необходимости повторно вводить сложные фразы. Существует два типа псевдонимов. Дополнительные сведения об псевдонимах см. в разделе "Использование псевдонимов".
Само повторяющиеся команды
Для повторения действия или условного выполнения других команд можно использовать следующие команды:
Условная команда j (Execute If-Else)
Дополнительные сведения о каждой команде см. в отдельных разделах команд.
Управление прокруткой
Полоса прокрутки можно использовать для просмотра предыдущих команд и их выходных данных.
При использовании CDB или KD любая запись клавиатуры автоматически прокручивает окно команды отладчика вниз вниз.
В WinDbg экран автоматически прокручивается вниз, когда команда создает выходные данные или нажимаете клавишу ВВОД. Если вы хотите отключить эту автоматическую прокрутку, выберите пункт "Параметры " в меню "Вид ", а затем снимите флажок "Автоматически прокручивать ".
Функции текста WinDbg
В WinDbg можно использовать несколько дополнительных функций, чтобы изменить способ отображения текста в окне команды отладчика. Вы можете получить доступ к некоторым из этих функций в окне WinDbg, некоторые из них в контекстном меню в окне команды отладчика и некоторые из них, выбрав соответствующий значок меню.
Команда оболочки Word в контекстном меню включает и отключает состояние оболочки слова. Эта команда влияет на все окно, а не только команды, которые вы используете после изменения этого состояния. Так как многие команды и расширения создают отформатированные экраны, обычно не рекомендуется обтекать словами.
Изменение | Команда "Добавить в меню вывода команд" добавляет комментарий в окне команды отладчика. Команда Add to command output command в контекстном меню имеет тот же эффект.
Вы можете настроить цвета, используемые для текста и фона окна команды отладчика. Можно указать разные цвета для разных типов текста. Например, можно отобразить выходные данные автоматического регистра в одном цвете, сообщения об ошибках в другом цвете и сообщения DbgPrint в третьем цвете.
Вы можете использовать все функции, общие для окон отладки WinDbg, таких как настройка шрифтов и использование специальных команд редактирования.
Удаленная отладка
При выполнении удаленной отладки с помощью отладчика клиент отладки может получить доступ к ограниченному количеству команд. Чтобы изменить количество команд, к которым клиент может получить доступ, используйте параметр командной строки -clines или переменную среды _NT_DEBUG_HISTORY_SIZE.