Condividi tramite


Controllo del debugger User-Mode dal debugger del kernel

È possibile reindirizzare l'input e l'output da un debugger in modalità utente a un debugger del kernel. Questo reindirizzamento consente al debugger del kernel di controllare una sessione di debug in modalità utente specifica che si verifica nel computer di destinazione.

È possibile usare KD o WinDbg come debugger del kernel. Si noti che molte delle funzionalità familiari di WinDbg non sono disponibili in questo scenario. Ad esempio, non è possibile usare la finestra Variabili locali, la finestra Disassembly o la finestra Stack di chiamate e non è possibile eseguire il passaggio del codice sorgente. Questo perché WinDbg funge solo da visualizzatore per il debugger (NTSD o CDB) in esecuzione nel computer di destinazione.

È possibile usare CDB o NTSD come debugger in modalità utente. NTSD è la scelta migliore, perché richiede risorse minime dal processore e dal sistema operativo del computer il cui applicazione viene eseguito il debug. Infatti, quando NTSD viene avviato sotto il controllo del debugger del kernel, non viene creata alcuna finestra NTSD. Con NTSD è possibile eseguire il debug in modalità utente tramite la porta seriale all'inizio della fase di avvio e in ritardo nell'arresto.

Nota Il comando .shell non è supportato quando l'output di un debugger in modalità utente viene reindirizzato al debugger del kernel.

Questa sezione include quanto segue:

  • A partire dalla sessione di debug viene descritto come iniziare una sessione in cui il debugger in modalità utente viene controllato dal debugger del kernel.

  • Le modalità di cambio descrivono le quattro diverse modalità coinvolte e come alternarle.

  • Quando usare questa tecnica descrive gli scenari in cui questa tecnica è particolarmente utile.

  • La combinazione di questo metodo con debug remoto descrive come controllare il debugger in modalità utente da un debugger del kernel e usarlo come server di debug contemporaneamente. Questa combinazione può essere utile se i simboli in modalità utente si trovano in un server simboli.