Debug di un errore di User-Mode con KD
Per eseguire correttamente il debug degli errori in modalità utente, è necessario cdB o WinDbg. Tuttavia, a volte un'eccezione in modalità utente verrà interrotta in KD perché non è presente alcun debugger in modalità utente. Esistono anche momenti in cui è utile monitorare i processi specifici in modalità utente durante il debug di un problema in modalità kernel.
Per impostazione predefinita, il debugger del kernel tenta di caricare il primo simbolo in modalità utente corrispondente all'indirizzo specificato (per un comando k, u o ln ).
Sfortunatamente, i simboli in modalità utente spesso non vengono specificati nel percorso del simbolo o il primo simbolo non è quello corretto. Se i simboli non sono presenti, copiarli nel percorso del simbolo o usare un comando con estensione sympath (Imposta percorso simbolo) per puntare all'albero dei simboli completo e quindi usare il comando Ricarica modulo . Se il simbolo errato viene caricato, è possibile caricare in modo esplicito un simbolo eseguendo un file binario.ext> di ricaricamento<.
La maggior parte delle DLL di Windows è ribasata in modo da caricare in indirizzi diversi, ma esistono eccezioni. Le schede video sono le eccezioni più comuni. Ci sono decine di schede video che tutti caricano con lo stesso indirizzo di base, quindi KD troverà quasi sempre ati.dll (il primo simbolo video, alfabeticamente). Per il video è disponibile anche un file .sys caricato che può essere identificato usando il comando lm . Con queste informazioni, è possibile eseguire un ricaricamento con estensione per ottenere le DLL video corrette. Ci sono anche momenti in cui il debugger viene confuso e ricaricato simboli specifici aiuterà a assegnare lo stack corretto. Annullare ilassemble delle funzioni per verificare se i simboli sembrano corretti.
Analogamente alle DLL video, quasi tutti i file eseguibili vengono caricati nello stesso indirizzo, quindi KD segnala l'accesso. Se viene visualizzata una traccia dello stack in accesso, eseguire un processo ! e quindi ricaricare il nome eseguibile specificato. Se il file eseguibile non dispone di simboli nel percorso del simbolo, copiarli in questo percorso e eseguire nuovamente il ricaricamento .
A volte KD o WinDbg ha problemi di caricamento dei simboli in modalità utente corretti anche quando l'albero dei simboli completo si trova nel percorso del simbolo. In questo caso, ntdll.dll e kernel32.dll sono due dei simboli più comuni necessari. Nel caso del debug di CSRSS da KD, winsrv.dll e csrsrv.dll sono anche DLL comuni da caricare.