Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается использование команд отладчика. 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 для автозавершения текста, если фрагмент текста начинается с точки (.), текст сопоставляется с точечной командой. Если фрагмент текста начинается с восклицательного знака (!), текст сопоставляется с командой расширения. В противном случае текст сопоставляется с символом. При использовании клавиши TAB для ввода символов нажатие клавиши TAB завершает код и символы типов и имена модулей. Если имя модуля не очевидно, то будут подставлены локальные символы и имена модулей. Если задан шаблон модуля или модуля, завершение символов завершает код и символы типа из всех совпадений.
Вы можете выбрать и сохранить (или щелкнуть правой кнопкой мыши) в командном окне отладчика, чтобы автоматически вставить содержимое буфера обмена в команду, которую вы вводите.
Максимальная длина команды — 4096 символов. Однако если вы управляете отладчиком пользовательского режима из отладчика ядра, максимальная длина строки составляет 512 символов.
В CDB и KD нажмите только клавишу ВВОД, чтобы повторить предыдущую команду. В WinDbg можно включить или отключить это поведение. Дополнительные сведения об этом поведении см. в разделе ВВОД (Повторить последнюю команду).
Если последняя команда, выданная вами, представляет длинное отображение и вы хотите отключить ее, используйте клавиши CTRL+C в CDB или KD. В WinDbg используйте Отладка | Прервать или нажмите CTRL+BREAK.
При отладке в режиме ядра можно отменить команды с клавиатуры целевого компьютера, нажав клавиши CTRL+C.
Для очистки всего текста из командного окна отладчика можно использовать команду CLS (очистить экран). Эта команда очищает всю историю команд. В WinDbg можно очистить журнал команд с помощью очистки журнала на вкладке ленты команд или щелкнув "Очистить журнал команд " в контекстном меню (щелкните правой кнопкой мыши) окна команды.
Синтаксис выражений
Многие команды и команды расширения принимают выражения в качестве аргументов. Отладчик вычисляет эти выражения перед выполнением команды. Дополнительные сведения о выражениях см. в разделе "Оценка выражений".
Псевдонимы
Псевдонимы — это текстовые макросы, которые можно использовать, чтобы избежать необходимости повторно вводить сложные фразы. Существует два типа псевдонимов. Дополнительные сведения об псевдонимах см. в разделе "Использование псевдонимов".
Команды Self-Repeating
Для повторения действия или условного выполнения других команд можно использовать следующие команды:
Условная команда j (выполнение If-Else)
Условная команда z (Execute While)
Квалификатор команды ~e (Thread-Specific Command)
Команда расширения !list
Дополнительные сведения о каждой команде см. в отдельных разделах команд.
Управление прокруткой
Полоса прокрутки можно использовать для просмотра предыдущих команд и их выходных данных.
При использовании CDB или KD любой ввод с клавиатуры автоматически прокручивает окно команд отладчика вниз.
В WinDbg экран автоматически прокручивается вниз, когда команда создает выходные данные или нажимаете клавишу ВВОД. Если вы хотите отключить эту автоматическую прокрутку, переключите кнопку автоматической прокрутки на вкладке ленты "Команда" или щелкните правой кнопкой мыши в окне "Команда" и снимите флажок "Автоматически прокручивать".
Функции текста WinDbg
В WinDbg можно использовать несколько дополнительных функций, чтобы изменить способ отображения текста в окне команды отладчика. Некоторые из этих функций можно получить на вкладке "Лента команд " и некоторые из контекстного меню (щелкните правой кнопкой мыши) в окне командной строки.
Команда оболочки Word в контекстном меню включает и отключает состояние оболочки слова. Эта команда влияет на все окно, а не только команды, которые вы используете после изменения этого состояния. Поскольку многие команды и расширения создают отформатированные отображения, обычно не рекомендуется использовать перенос слов.
Кнопка Highlight Selection на вкладке ленты Command (или Highlight selection в контекстном меню) выделяет или отменяет выделение текущего выделенного текста (Ctrl+Alt+H).
Кнопка "Удалить выделение " на вкладке "Лента команд " (или "Удалить выделенный текст " в контекстном меню) удаляет выделенный текст из журнала команд.
Вы можете перемещаться между разделами команд с помощью команды " Перейти к предыдущему " (CTRL+[) и "Перейти к следующему " (CTRL+]) на вкладке "Лента команд " или "Выбрать предыдущую команду " и "Выбрать следующую команду " в контекстном меню.
Вы можете настроить цвета, используемые для текста и фона окна команды отладчика. Можно указать разные цвета для разных типов текста. Например, можно отобразить выходные данные автоматического регистра в одном цвете, сообщения об ошибках в другом цвете и сообщения DbgPrint в третьем цвете.
Вы можете использовать все функции, общие для окон отладки WinDbg, таких как настройка шрифтов и использование специальных команд редактирования.
Удаленная отладка
При выполнении удаленной отладки с помощью отладчика клиент отладки может получить доступ к ограниченному количеству команд. Чтобы изменить количество команд, к которым клиент может получить доступ, используйте параметр командной строки-clines или переменную среды _NT_DEBUG_HISTORY_SIZE.