Condividi tramite


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 della risoluzione automatica dei problemi per gli arresti anomali del sistema

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

HKEY_LOCAL_MACHINE\CONTROLLO\CurrentControlSet\\CrashControl

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

Impostare il debug automatico per i crash delle applicazioni

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.

Impostare un debugger come debugger postmortem

  1. Vai 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 del processo e l'handle di evento con i 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 del processo e il secondo "%ld" viene sostituito con l'handle dell'evento.

    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 di automatico 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 di 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.

I valori predefiniti del Registro di sistema AeDebug possono essere rappresentati come segue:

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

Abilitazione del debug postmortem con WinDbg