Freigeben über


Debuggen im Live-Kernelmodus mit KD

In einem Eingabeaufforderungsfenster können Sie beim Starten von KD eine Live-Kernelmodus-Debuggingsitzung initiieren. Geben Sie einen der folgenden Befehle ein.

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

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:modem

kd [-y SymbolPath] -kl

kd [-y SymbolPath] -k

Weitere Informationen finden Sie unter KD-Befehlszeilenoptionen.

Umgebungsvariablen

Für das Debuggen über eine serielle Verbindung (COM-Port) können Sie Umgebungsvariablen verwenden, um die Verbindungseinstellungen anzugeben.

Verwenden Sie die folgenden Variablen, um eine serielle Verbindung anzugeben.

set _NT_DEBUG_PORT = ComPort

set _NT_DEBUG_BAUD_RATE = BaudRate

Weitere Informationen finden Sie unter Kernelmodus-Umgebungsvariablen.

Parameter

SymbolPath
Eine Liste der Verzeichnisse, in denen sich Symboldateien befinden. Verzeichnisse in der Liste werden durch Semikolons getrennt. Weitere Informationen finden Sie unter Symbolpfad.

PortNumber
Eine Portnummer, die für das Netzwerkdebugging verwendet werden soll. Sie können eine beliebige Zahl zwischen 49152 und 65535 auswählen. Weitere Informationen finden Sie unter Manuelles Einrichten einer Netzwerkverbindung.

Schlüssel
Der verschlüsselungsschlüssel, der für das Netzwerkdebugging verwendet werden soll. Es wird empfohlen, einen automatisch generierten Schlüssel zu verwenden, der von bcdedit bereitgestellt wird, wenn Sie den Zielcomputer konfigurieren. Weitere Informationen finden Sie unter Manuelles Einrichten einer Netzwerkverbindung.

TargetIPAddress
Die IPv4-Adresse des Zielcomputers.

Wenn die Zieladresse = IP-Adresse angegeben wird, wird dadurch der Debugger eine Verbindung mit dem angegebenen Zielcomputer initiieren, indem ein spezielles Paket an das Ziel gesendet wird, das dazu führt, dass versucht wird, eine Verbindung mit diesem Debugger herzustellen. Der Debugger sendet Pakete wiederholt alle halbe Sekunde an das Ziel und versucht, eine Verbindung herzustellen. Wenn die Verbindung erfolgreich ist, wird vom Ziel eine vorhandene Verbindung abgebrochen und nur mit dieser Instanz des Debuggers kommuniziert. Auf diese Weise können Sie die Kontrolle über die Debugsitzung von einer vorhandenen Debugverbindung wegnehmen.

Wenn das Ziel mit einer Host-IP-Adresse konfiguriert ist und der Debugger auf dem Computer mit der konfigurierten Host-IP-Adresse ausgeführt wird, muss der Parameter "target= IP address" nicht angegeben werden. Wenn das Ziel mit einer Host-IP-Adresse konfiguriert ist, sendet es alle drei Sekunden OFFER-Pakete an den Host. Mit den OFFER-Paketen kann der Debugger eine Verbindung mit dem Host herstellen, wenn keine ZIEL-=IP-Adresse angegeben ist.

Weitere Informationen zum Konfigurieren der Host-IP-Adresse für das Ziel finden Sie unter Einrichten des KDNET-Netzwerkkernkerndebuggings automatisch und manuelles Einrichten des KDNET-Netzwerkkerneldebuggings.

TargetMachineName
Der Computername des Ziel-PCs. Um den Computernamen zu verwenden, muss das DNS-System im Netzwerk den Computernamen der IP-Adresse des Ziel-PCs zugeordnet haben.

USBString
Ein USB-Verbindungszeichenfolge. Dies muss mit der mit der Startoption "/targetname" angegebenen Zeichenfolge übereinstimmen. Weitere Informationen finden Sie unter Einrichten des USB 3.0 xHCI-DBC-Kernelmodusdebuggings (KDUSB).

Aufführen
Der Name des COM-Ports. Dies kann im Format "com2" oder im Format "\\.\com2" vorliegen, sollte aber nicht einfach eine Zahl sein. Weitere Informationen finden Sie unter Manuelles Einrichten einer seriellen Verbindung.

BaudRate
Die Baudrate. Dies kann 9600, 19200, 38400, 57600 oder 115200 sein.

VMHost
Beim Debuggen eines virtuellen Computers gibt VMHost den Namen des physischen Computers an, auf dem der virtuelle Computer ausgeführt wird. Wenn der virtuelle Computer auf demselben Computer wie der Kerneldebugger selbst ausgeführt wird, verwenden Sie einen einzelnen Punkt (.) für VMHost. Weitere Informationen finden Sie unter Einrichten einer Verbindung mit einem virtuellen Computer.

PipeName
Der Name der pipe, die vom virtuellen Computer für die Debugverbindung erstellt wurde.

resets=0
Gibt an, dass eine unbegrenzte Anzahl von Zurücksetzungspaketen an das Ziel gesendet werden kann, wenn der Host und das Ziel synchronisiert werden. Dieser Parameter ist nur beim Debuggen bestimmter Arten virtueller Computer erforderlich.

wiederverbinden
Bewirkt, dass der Debugger die Verbindung automatisch trennt und erneut verbindet, wenn ein Lese-/Schreibfehler auftritt. Wenn die benannte Pipe beim Starten des Debuggers nicht gefunden wird, bewirkt der Parameter für die erneute Verbindung, dass sie auf die Anzeige einer Pipe dieses Namens wartet. Dieser Parameter ist nur beim Debuggen bestimmter Arten virtueller Computer erforderlich.

-Kl
Bewirkt, dass der Debugger lokales Kernelmodusdebugging durchführt. Weitere Informationen finden Sie unter Debuggen im lokalen Kernelmodus.

SerialTcpIpPort
Der TCP-ZIEL-IP-Port des emulierten seriellen COM-Ports.

SerialIPAddress
Die TCP-Ziel-IP-Adresse des emulierten seriellen COM-Ports.

Beispiele

Die folgende Batchdatei kann zum Einrichten und Starten einer Debugsitzung über eine COM-Portverbindung verwendet werden.

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

Die folgenden Befehlszeilen können verwendet werden, um WinDbg ohne Umgebungsvariablen zu starten.

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

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

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