Debug in modalità kernel live con WinDbg (versione classica)
Esistono due modi per usare WinDbg per avviare una sessione di debug in modalità kernel live.
WinDbg Menu
Quando WinDbg è in modalità inattiva, è possibile avviare una sessione di debug del kernel scegliendo Debug kernel dal menu File o premendo CTRL+K. Quando viene visualizzata la finestra di dialogo Debug kernel, fare clic sulla scheda appropriata: NET, COM, USB o Locale. Ogni scheda specifica un metodo di connessione diverso.
Prompt dei comandi
In una finestra del prompt dei comandi è possibile avviare una sessione di debug in modalità kernel quando si avvia WinDbg. Immettere uno dei comandi seguenti:
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
Per altre informazioni, vedere Opzioni della riga di comando di WinDbg.
Variabili di ambiente
Per il debug su una porta COM seriale, è 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.
SerialTcpIpPort
Porta TCP IP di destinazione della porta COM seriale emulata.
SerialIPAddress
Indirizzo IP TCP di destinazione della porta COM seriale emulata.
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.
Parametri della versione precedente
Importante
Il trasporto 1394 è disponibile per l'uso in Windows 10 versione 1607 e precedenti. Non è disponibile nelle versioni successive di Windows. È consigliabile eseguire la transizione dei progetti ad altri trasporti, ad esempio KDNET tramite Ethernet. Per altre informazioni sul trasporto, vedere Configurazione automatica del debug del kernel di rete KDNET.
1394Channel
Numero di canale 1394. I numeri di canale validi sono interi compresi tra 0 e 62 inclusi. 1394Channel deve corrispondere al numero utilizzato dal computer di destinazione, ma non dipende dalla porta fisica 1394 scelta sulla scheda.
1394Protocol
Protocollo di connessione da usare per la connessione kernel 1394. Ciò può essere quasi sempre omesso, perché il debugger sceglierà automaticamente il protocollo corretto. Se vuoi impostare questa impostazione manualmente e il computer di destinazione esegue Windows XP, 1394Protocol deve essere impostato su "channel". Se il computer di destinazione esegue Windows Server 2003 o versione successiva, 1394Protocol deve essere impostato su "instance". Se viene omesso, per impostazione predefinita il debugger verrà impostato sul protocollo appropriato per il computer di destinazione corrente. Questa opzione può essere specificata solo tramite la riga di comando o le variabili di ambiente, non tramite l'interfaccia grafica WinDbg.
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
windbg -k
È possibile usare le righe di comando seguenti per avviare WinDbg senza variabili di ambiente.
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