Condividi tramite


Debug in modalità kernel live con KD

In una finestra del prompt dei comandi è possibile avviare una sessione di debug in modalità kernel attiva quando si avvia KD. Immettere uno dei comandi seguenti.

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

kd [-y SymbolPath] -kl

kd [-y SymbolPath] -k

Per altre informazioni, vedere Opzioni della riga di comando KD.

Variabili di ambiente

Per eseguire il debug tramite una connessione seriale (porta COM), è possibile usare le variabili di ambiente per specificare le impostazioni di connessione.

Usare le variabili seguenti per specificare una connessione seriale.

set _NT_DEBUG_PORT = ComPort

set _NT_DEBUG_BAUD_RATE = BaudRate

Per altre informazioni, vedere Variabili di ambiente in modalità kernel.

Parametri

SymbolPath
Elenco di directory in cui si trovano i file di simboli. Le directory nell'elenco sono separate da punti e virgola. Per altre informazioni, vedere Percorso simboli.

PortNumber
Numero di porta da usare per il debug di rete. È possibile scegliere qualsiasi numero compreso tra 49152 e 65535. Per altre informazioni, vedere Configurazione manuale di una connessione di rete.

Chiave
Chiave di crittografia da usare per il debug di rete. È consigliabile usare una chiave generata automaticamente, fornita da bcdedit quando si configura il computer di destinazione. Per altre informazioni, vedere Configurazione manuale di una connessione di rete.

TargetIPAddress
Indirizzo IPv4 del computer di destinazione.

Quando si specifica l'indirizzo IP target=, il debugger avvia una connessione al computer di destinazione specificato inviando un pacchetto speciale alla destinazione, in modo che tenti di connettersi a tale debugger. Il debugger invierà ripetutamente pacchetti alla destinazione ogni mezzo secondo, tentando di connettersi. Se la connessione ha esito positivo, la destinazione rilascia qualsiasi connessione esistente e comunica solo con questa istanza del debugger. In questo modo è possibile sottrarre il controllo della sessione di debug da una connessione di debug esistente.

Quando la destinazione è configurata con un indirizzo IP host e il debugger viene eseguito nel computer con l'indirizzo IP host configurato, non è necessario specificare il parametro target= indirizzo IP. Quando la destinazione è configurata con un indirizzo IP host, invierà pacchetti OFFER all'host ogni tre secondi. I pacchetti OFFER consentono al debugger di connettersi all'host quando non viene specificato alcun indirizzo IP di destinazione= .

Per altre informazioni sulla configurazione dell'indirizzo IP host nella destinazione, vedere Configurazione del debug automatico del kernel di rete KDNET e Configurazione manuale del debug del kernel di rete KDNET.

TargetMachineName
Nome del computer di destinazione. Per usare il nome del computer, il sistema DNS nella rete deve avere il nome del computer associato all'indirizzo IP del PC di destinazione.

USBString
Un stringa di connessione USB. Deve corrispondere alla stringa specificata con l'opzione di avvio /targetname. Per altre informazioni, vedere Configurazione del debug in modalità kernel USB 3.0 xHCI-DBC (KDUSB).

Comportarsi
Nome della porta COM. Può essere nel formato "com2" o nel formato "\.\com2", ma non deve essere semplicemente un numero. Per altre informazioni, vedere Configurazione manuale di una connessione seriale.

BaudRate
Velocità in baud. Può essere 9600, 19200, 38400, 57600 o 115200.

VMHost
Quando si esegue il debug di una macchina virtuale, VMHost specifica il nome del computer fisico in cui è in esecuzione la macchina virtuale. Se la macchina virtuale è in esecuzione nello stesso computer del debugger del kernel stesso, usare un singolo punto (.) per VMHost. Per altre informazioni, vedere Configurazione di una connessione a una macchina virtuale.

PipeName
Nome della pipe creata dalla macchina virtuale per la connessione di debug.

resets=0
Specifica che un numero illimitato di pacchetti di reimpostazione può essere inviato alla destinazione quando l'host e la destinazione vengono sincronizzati. Questo parametro è necessario solo quando si esegue il debug di determinati tipi di macchine virtuali.

ricollegare
Determina la disconnessione automatica del debugger e la riconnessione della pipe se si verifica un errore di lettura/scrittura. Inoltre, se la named pipe non viene trovata all'avvio del debugger, il parametro di riconnessione causerà la visualizzazione di una pipe di questo nome. Questo parametro è necessario solo quando si esegue il debug di determinati tipi di macchine virtuali.

-Kl
Fa sì che il debugger esegua il debug in modalità kernel locale. Per altre informazioni, vedere Debug in modalità kernel locale.

SerialTcpIpPort
Porta TCP IP di destinazione della porta COM seriale emulata.

SerialIPAddress
Indirizzo IP TCP di destinazione della porta COM seriale emulata.

Esempi:

Il file batch seguente può essere usato per configurare e avviare una sessione di debug tramite una connessione di porta 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

È possibile usare le righe di comando seguenti per avviare WinDbg senza variabili di ambiente.

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 net:port=50000,key=AutoGeneratedKey