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


Динамическая отладка Kernel-Mode с помощью WinDbg (классическая версия)

Существует два способа использования WinDbg для запуска активного сеанса отладки в режиме ядра.

Меню WinDbg

Если WinDbg находится в неактивном режиме, можно начать сеанс отладки ядра, выбрав Отладка ядра в меню Файл или нажав клавиши CTRL+K. Когда откроется диалоговое окно Отладка ядра , перейдите на соответствующую вкладку: NET, 1394, USB, COM или Local. На каждой вкладке указан другой метод подключения.

Командная строка

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

windbg [-y SymbolPath] -k net:port=PortNumber,key=Key[,target=TargetIPAddress|TargetMachineName]

windbg [-y SymbolPath] -k usb:targetname=USBString

windbg [-y SymbolPath] -k com:port=ComPort,baud=BaudRate

windbg [-y SymbolPath] -k com:ipport=SerialTcpIpPort,port=SerialIPAddress

windbg [-y SymbolPath] -k com:pipe,port=\\VMHost\pipe\PipeName[,resets=0][,reconnect]

windbg [-y SymbolPath] -k com:modem

windbg [-y SymbolPath] -kl

windbg [-y SymbolPath] -k

Дополнительные сведения см. в разделе Параметры Command-Line WinDbg.

Переменные среды

Для отладки через последовательный (COM-порт) или подключение 1394 можно использовать переменные среды для указания параметров подключения.

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

set _NT_DEBUG_PORT = ComPort

set _NT_DEBUG_BAUD_RATE = BaudRate

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

Параметры

SymbolPath
Список каталогов, в которых находятся файлы символов. Каталоги в списке разделяются точкой с запятой. Дополнительные сведения см. в разделе Путь к символам.

Номер порта
Номер порта, используемого для отладки сети. Вы можете выбрать любое число от 49152 до 65535. Дополнительные сведения см. в разделе Настройка сетевого подключения вручную.

Ключ
Ключ шифрования, используемый для отладки сети. Рекомендуется использовать автоматически созданный ключ, который предоставляется bcdedit при настройке целевого компьютера. Дополнительные сведения см. в разделе Настройка сетевого подключения вручную.

TargetIPAddress
IPv4-адрес целевого компьютера.

Если указан IP-адрес target=, отладчик инициирует подключение к указанному целевому компьютеру, отправляя специальный пакет целевому объекту, что приведет к попытке подключения к этому отладчику. Отладчик будет отправлять пакеты в целевой объект несколько раз примерно каждые половину секунды, пытаясь подключиться. В случае успешного подключения целевой объект будет удалять все существующие подключения и взаимодействовать только с этим экземпляром отладчика. Это позволяет отобрать управление сеансом отладки от существующего подключения отладки.

Если в целевом объекте настроен IP-адрес узла, а отладчик запускается на компьютере с настроенным IP-адресом узла, указывать параметр target= IP address не требуется. Если целевой объект настроен с IP-адресом узла, он будет отправлять пакеты OFFER на узел каждые три секунды. Пакеты OFFER позволяют отладчику подключаться к узлу, если ip-адрес target= не указан.

Дополнительные сведения о настройке IP-адреса узла в целевом объекте см. в разделах Автоматическая настройка отладки сетевого ядра KDNET и Настройка отладки ядра сети KDNET вручную.

TargetMachineName
Имя компьютера целевого компьютера. Чтобы использовать имя компьютера, dns-система в сети должна иметь имя компьютера, связанное с IP-адресом целевого компьютера.

1394Channel
Номер канала 1394. Допустимые номера каналов — это любое целое число от 0 до 62 включительно. 1394Channel должен соответствовать номеру, используемому целевым компьютером, но не зависит от физического порта 1394, выбранного для адаптера. Дополнительные сведения см. в разделе Настройка подключения 1394 вручную.

1394Protocol
Протокол подключения, используемый для подключения ядра 1394. Его почти всегда можно опустить, так как отладчик автоматически выберет правильный протокол. Если вы хотите задать этот параметр вручную и на целевом компьютере работает Windows XP, для параметра 1394Protocol должно быть задано значение "channel". Если целевой компьютер работает под управлением Windows Server 2003 или более поздней версии, для параметра 1394Protocol должно быть задано значение "экземпляр". Если он опущен, отладчик по умолчанию будет использовать протокол, соответствующий текущему целевому компьютеру. Это можно указать только с помощью командной строки или переменных среды, а не через графический интерфейс WinDbg.

USBString
Строка подключения USB. Он должен соответствовать строке, указанной параметром загрузки /targetname. Дополнительные сведения см. в разделах Настройка подключения ПО USB 3.0 вручную и Настройка подключения ПО USB 2.0 вручную.

ComPort
Имя COM-порта. Он может быть в формате "com2" или в формате "\\.\com2", но не должен быть просто числом. Дополнительные сведения см. в разделе Настройка последовательного подключения вручную.

BaudRate
Скорость в бодах. Это может быть 9600, 19200, 38400, 57600 или 115200.

SerialTcpIpPort
Целевой TCP-IP-порт эмулированного последовательного COM-порта.

SerialIPAddress
Целевой IP-адрес TCP эмулированного последовательного COM-порта.

VMHost
При отладке виртуальной машины VMHost указывает имя физического компьютера, на котором выполняется виртуальная машина. Если виртуальная машина работает на том же компьютере, что и сам отладчик ядра, используйте одну точку (.) для VMHost. Дополнительные сведения см. в разделе Настройка подключения к виртуальной машине.

Имя канала
Имя канала, созданного виртуальной машиной для подключения отладки.

resets=0
Указывает, что при синхронизации узла и целевого объекта в целевой объект может быть отправлено неограниченное количество пакетов сброса. Этот параметр необходим только при отладке определенных типов виртуальных машин.

Подключите
Приводит к автоматическому отключению отладчика и повторному подключению канала в случае сбоя чтения и записи. Кроме того, если именованный канал не найден при запуске отладчика, параметр reconnect вызовет ожидание появления канала с этим именем. Этот параметр необходим только при отладке определенных типов виртуальных машин.

-Kl
Приводит к тому, что отладчик выполняет локальную отладку в режиме ядра. Дополнительные сведения см. в разделе Локальная отладка Kernel-Mode.

Примеры

Следующий пакетный файл можно использовать для настройки и запуска сеанса отладки через подключение к COM-порту.

set _NT_SYMBOL_PATH=d:\mysymbols
set _NT_DEBUG_PORT=com1
set _NT_DEBUG_BAUD_RATE=115200
set _NT_DEBUG_LOG_FILE_OPEN=d:\debuggers\logfile1.log
windbg -k

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

windbg -y d:\mysymbols -k com:port=com2,baud=57600

windbg -y d:\mysymbols -k com:port=\\.\com2,baud=115200

windbg -y d:\mysymbols -k net:port=50000,key=AutoGeneratedKey

windbg -y d:\mysymbols -k net:port=50000,key=AutoGeneratedKey,target=TargetIPAddress

См. также

Параметры Command-Line WinDbg

Переменные среды режима ядра