Share via


Configurazione del debug automatico

Gli utenti possono configurare il debug automatico per determinare il motivo per cui il sistema o un'applicazione ha smesso di rispondere.

Configurazione del debug automatico per gli arresti anomali del sistema

Per configurare il computer di destinazione per generare un file di dump di arresto anomalo del sistema quando il sistema smette di rispondere, usare l'applicazione system in Pannello di controllo. Fare clic su Impostazioni di sistema avanzate per visualizzare la finestra di dialogo Proprietà sistema. Nella scheda Avanzate di tale casella fare clic su Impostazioni in Avvio e ripristino e quindi usare le opzioni di ripristino appropriate. In alternativa, è possibile configurare le opzioni di dump di arresto anomalo del sistema usando la chiave del Registro di sistema seguente:

\HKEY_LOCAL_MACHINE controllo\SYSTEM\CurrentControlSet\CrashControl

Il file che è possibile specificare è il file di dump di arresto anomalo del sistema. Il nome predefinito è Memory.dmp. È possibile eseguire il debug di un dump di arresto anomalo con un debugger in modalità kernel, ad esempio WinDbg o KD. Per altre informazioni, vedere la documentazione inclusa nel debugger.

Configurazione del debug automatico per gli arresti anomali dell'applicazione

Quando un'applicazione smette di rispondere (ad esempio, dopo una violazione di accesso), il sistema richiama automaticamente un debugger specificato nel Registro di sistema per il debug postmortem, l'ID processo e l'handle eventi vengono passati al debugger se la riga di comando è configurata correttamente. Nella procedura seguente viene descritto come specificare un debugger nel Registro di sistema.

Per impostare un debugger come debugger postmortem

  1. Passare alla chiave del Registro di sistema seguente:

    \HKEY_LOCAL_MACHINE SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug

  2. Aggiungere o modificare il valore debugger utilizzando una stringa REG_SZ che specifica la riga di comando per il debugger.

    La stringa deve includere il percorso completo dell'eseguibile del debugger. Indicare l'ID processo e l'handle di evento con parametri "%ld" alla riga di comando del debugger. Per indicare questi valori, i debugger diversi possono avere una sintassi dei parametri personalizzata. Quando viene richiamato il debugger, il primo "%ld" viene sostituito con l'ID processo e il secondo "%ld" viene sostituito con l'handle eventi.

    Il testo seguente è un esempio di come configurare WinDbg come debugger.

    "C:\debuggers\windbg.exe" -p %ld -e %ld -g
    
  3. Se si desidera che il debugger venga richiamato senza interazione dell'utente, aggiungere o modificare il valore Auto utilizzando una stringa REG_SZ che specifica se il sistema deve visualizzare una finestra di dialogo all'utente prima che venga richiamato il debugger. La stringa "1" disabilita la finestra di dialogo; la stringa "0" abilita la finestra di dialogo.

Esclusione di un'applicazione dal debug automatico

La procedura seguente descrive come escludere un'applicazione dal debug automatico dopo che il valore Automatico nella chiave AeDebug è stato impostato su 1.

Per escludere un'applicazione dal debug automatico

  1. Passare alla chiave del Registro di sistema seguente:

    \HKEY_LOCAL_MACHINE SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug

  2. Aggiungere un valore REG_DWORD alla sottochiave AutoExclusionList , dove il nome è il nome del file eseguibile e il valore è 1. Per impostazione predefinita, Gestione finestre desktop (Dwm.exe) è escluso dal debug automatico perché in caso contrario può verificarsi un deadlock di sistema se Dwm.exe smette di rispondere (l'utente non può visualizzare l'interfaccia visualizzata dal debugger perché Dwm.exe non risponde e Dwm.exe non può terminare perché è mantenuto dal debugger).

    Windows Server 2003 e Windows XP: la sottochiave AutoExclusionList non è disponibile, pertanto non è possibile escludere alcuna applicazione, tra cui Dwm.exe, dal debug automatico.

Le voci predefinite del Registro di sistema AeDebug possono essere rappresentate nel modo seguente:

HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         Windows NT
            CurrentVersion
               AeDebug
                  Auto = 1
                  AutoExclusionList
                     DWM.exe = 1

Abilitazione del debug postmortem con WinDbg