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


Отладка в режиме локального ядра

Средства отладки для Windows поддерживают отладку локального ядра. Это отладка в режиме ядра на одном компьютере. Другими словами, отладчик запускается на том же компьютере, который отлаживается.

Настройка локальной отладки Kernel-Mode

Сведения о настройке отладки локального режима ядра см. в разделе "Настройка локального Kernel-Mode отладка одного компьютера вручную".

Запуск сеанса отладки

Использование WinDbg

Откройте WinDbg от имени администратора. В меню Файл выберите Отладка ядра. В диалоговом окне отладки ядра откройте вкладку "Локальный ". Нажмите кнопку "ОК".

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

windbg -kl

Использование KD

Откройте окно командной строки от имени администратора и введите следующую команду:

kd -kl

Команды, которые недоступны

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

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

  • Команды выполнения, такие как g (Go),p (Шаг),t (Трассировка),wt (Трассировка и наблюдение данных), tb (Трассировка до следующей ветви), gh (Go с обработкой исключений) и gn (Go без обработки исключений)

  • Команды завершения работы и дампа, такие как crash, дамп, и перезагрузка

  • Команды точки останова, такие как bp, bu, ba, bc, bd, be и bl

  • Регистрация команд отображения, таких как r и варианты

  • Команды трассировки стека, такие как k и варианты

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

Доступные команды

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

Трудности при отладке локального ядра

Отладка локального ядра — это очень деликатная операция. Будьте осторожны, чтобы не повредить или не вызвать сбои в системе.

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

Драйверы режима ядра и операционная система Windows часто отправляют сообщения в отладчик ядра с помощью DbgPrint и связанных функций. Эти сообщения не отображаются автоматически во время локальной отладки ядра. Их можно отобразить с помощью расширения !dbgprint .

LiveKD

Средство LiveKD имитирует отладку локального ядра. Это средство создает файл дампа моментального снимка памяти ядра без фактической остановки ядра во время создания этого моментального снимка. (Таким образом, моментальный снимок может не отображать единственное состояние компьютера.)

LiveKD не входит в состав пакета средств отладки для Windows. Вы можете скачать LiveKd на сайте Windows Sysinternals.