Отладка динамического Kernel-Mode с помощью KD

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

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

kd [-y SymbolPath] -k 1394:channel=1394Channel[,symlink=1394Protocol]

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

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

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

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

kd [-y SymbolPath] -k com:модем

kd [-y SymbolPath] -kl

kd [-y SymbolPath] -k

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

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

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

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

set _NT_DEBUG_PORT = ComPort

set _NT_DEBUG_BAUD_RATE = BaudRate

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

set _NT_DEBUG_BUS = 1394

set _NT_DEBUG_1394_CHANNEL = 1394Channel

set _NT_DEBUG_1394_SYMLINK = 1394Protocol

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

Параметры

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

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

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

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

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

Если целевой объект настроен с IP-адресом узла, а отладчик запускается на компьютере с настроенным IP-адресом узла, указывать параметр target= IP address не требуется. Когда целевой объект настроен с IP-адресом узла, он будет отправлять пакеты ПРЕДЛОЖЕНИЯ на узел каждые три секунды. Пакеты 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 должно иметь значение "instance". Если он опущен, отладчик по умолчанию будет использовать протокол, соответствующий текущему целевому компьютеру. Это можно указать только с помощью командной строки или переменных среды, а не с помощью графического интерфейса WinDbg.

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

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

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

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

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

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

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

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

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

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

Примеры

Следующий пакетный файл можно использовать для настройки и запуска сеанса отладки через подключение к 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
kd

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

set _NT_SYMBOL_PATH=d:\mysymbols
set _NT_DEBUG_BUS=1394
set _NT_DEBUG_1394_CHANNEL=44
set _NT_DEBUG_LOG_FILE_OPEN=d:\debuggers\logfile1.log
kd

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

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

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

kd -y d:\mysymbols -k 1394:channel=20,symlink=instance

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