Condividi tramite


Avvio della sessione di debug

In questa documentazione di come controllare il debug in modalità utente dal debugger del kernel, l'applicazione di destinazione fa riferimento all'applicazione in modalità utente di cui viene eseguito il debug, il computer di destinazione fa riferimento al computer che contiene l'applicazione di destinazione e il processo NTSD o CDB e il computer host fa riferimento al computer che contiene il debugger del kernel.

Per iniziare a usare questa tecnica, è necessario eseguire le operazioni seguenti. È possibile eseguire i passaggi 1 e 2 in entrambi gli ordini.

  1. Avviare NTSD o CDB nel computer di destinazione, con l'opzione della riga di comando -d.

    Ad esempio, è possibile collegarsi a un processo in esecuzione usando la sintassi seguente.

    ntsd -d [-yUserSymbolPath] -pPID

    In alternativa, è possibile avviare un nuovo processo come destinazione usando la sintassi seguente.

    ntsd -d [-yUserSymbolPath]ApplicationName

    Se si installa questo come debugger postmortem, utilizzare la seguente sintassi.

    ntsd -d [-yUserSymbolPath]

    Per altre informazioni su questo passaggio, vedere Debug di un processo di User-Mode tramite CDB.

  2. Avvia WinDbg o KD sul computer host, come se volessi avviare il debug del computer di destinazione, ma senza effettivamente intervenire sul computer di destinazione. Per usare WinDbg, usare la sintassi seguente.

    windbg [-yKernelSymbolPath] [-kConnectionOptions]

    Per altre informazioni su questo passaggio, vedere Live Kernel-Mode Debugging Using WinDbg (Classic).For more information about this step, see Live Kernel-Mode Debugging Using WinDbg (Classic).

    Nota Se si usa WinDbg come debugger del kernel, 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 codice sorgente passo passo. Questo perché WinDbg funge solo da visualizzatore per il debugger (NTSD o CDB) in esecuzione nel computer di destinazione.

  3. Se non è stato impostato il percorso del simbolo in modalità utente, impostarlo dal prompt di input> . Se non è stato impostato il percorso del simbolo in modalità kernel, impostarlo dal prompt kd> . Per informazioni su come accedere a queste richieste e per passare da una modalità all'altra, vedere Cambio di modalità.

Se si usa CDB, la finestra del prompt dei comandi associata a CDB rimane bloccata e non disponibile durante il debug. Se si usa NTSD, non viene creata alcuna finestra aggiuntiva, anche se NTSD ha un ID processo associato nel computer di destinazione.

Se si vuole eseguire il debugger in modalità utente dal debugger del kernel mentre lo si usa anche come server di debug, vedere Combinazione di questo metodo con debug remoto.