Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Gli strumenti di debug per Windows supportano il debug del kernel locale. Questo è il debug in modalità kernel in un singolo computer. In altre parole, il debugger viene eseguito nello stesso computer di cui viene eseguito il debug.
Configurazione del debug locale Kernel-Mode
Per informazioni sulla configurazione del debug in modalità kernel locale, vedere Configurazione del debug locale Kernel-Mode di un singolo computer manualmente.
Avvio della sessione di debug
l'uso di WinDbg
Aprire WinDbg come amministratore. Scegliere Debug kernel dal menu File. Nella finestra di dialogo Debug kernel aprire la scheda Locale . Selezionare OK.
È anche possibile avviare una sessione con WinDbg aprendo una finestra del prompt dei comandi come amministratore e immettendo il comando seguente:
windbg -kl
utilizzando KD
Aprire una finestra del prompt dei comandi come Amministratore e immettere il comando seguente:
kd -kl
Comandi non disponibili
Non tutti i comandi sono disponibili in una sessione di debug del kernel locale. In genere, non è possibile usare alcun comando che causa l'arresto del computer di destinazione, anche momentaneamente, perché non è possibile riprendere l'operazione.
In particolare, non è possibile usare i comandi seguenti:
Comandi di esecuzione, ad esempio g (Go), p (Step), t (Trace), wt (Trace and Watch Data), tb (Trace to Next Branch), gh (Go with Exception Handled) e gn (Go with Exception Not Handled)
Comandi di arresto e dump dei file, ad esempio arresto anomalo del sistema, dump e riavvio
Comandi del punto di interruzione, ad esempio bp, bu, ba, bc, bd, be e bl
Registrare i comandi di visualizzazione, ad esempio r e varianti
Comandi di analisi dello stack, ad esempio k e varianti
Se si esegue il debug del kernel locale con WinDbg, anche tutti i comandi e i pulsanti di menu equivalenti non sono disponibili.
Comandi disponibili
Sono disponibili tutti i comandi di input e output di memoria. È possibile leggere liberamente dalla memoria utente e dalla memoria del kernel. È anche possibile scrivere in memoria. Assicurarsi di non scrivere nella parte sbagliata della memoria del kernel, perché può danneggiare le strutture dati e spesso causare il blocco del computer, ovvero un arresto anomalo.
Difficoltà nell'esecuzione del debug del kernel locale
Il debug del kernel locale è un'operazione molto delicata. Fare attenzione a non danneggiare o bloccare il sistema.
Uno degli aspetti più difficili del debug del kernel locale è che lo stato della macchina cambia costantemente. La memoria viene scambiata dentro e fuori, il processo attuale cambia costantemente e i contesti degli indirizzi di memoria virtuali non rimangono costanti. Tuttavia, in queste condizioni, è possibile analizzare in modo efficace gli elementi che cambiano lentamente, ad esempio determinati stati del dispositivo.
I driver in modalità kernel e il sistema operativo Windows inviano spesso messaggi al debugger del kernel usando DbgPrint e le funzioni correlate. Questi messaggi non vengono visualizzati automaticamente durante il debug del kernel locale. È possibile visualizzarli usando l'estensione !dbgprint .
LiveKD
Lo strumento LiveKD simula il debug del kernel locale. Questo strumento crea un file di dump snapshot della memoria del kernel, senza arrestare effettivamente il kernel durante la creazione dello snapshot. Pertanto, lo snapshot potrebbe non mostrare effettivamente un singolo stato istantaneo del computer.
LiveKD non fa parte del pacchetto Strumenti di debug per Windows. È possibile scaricare LiveKd dal sito di Windows Sysinternals.