Partilhar via


Configurando a depuração automática

Os usuários podem configurar a depuração automática para ajudá-los a determinar por que seu sistema ou um aplicativo parou de responder.

Configuração da depuração automática para crashes do sistema

Para configurar o computador de destino para gerar um ficheiro de crash dump quando o sistema parar de responder, use a aplicação System no Painel de Controlo. Clique em Configurações avançadas do sistema, que exibe a caixa de diálogo Propriedades do sistema . No separador Avançado dessa caixa, clique em Definições em de Arranque e Recuperação e, em seguida, utilize as opções de recuperação adequadas. Como alternativa, você pode configurar opções de despejo de memória usando a seguinte chave do Registro:

HKEY_LOCAL_MACHINE\SISTEMA\CurrentControlSet\Control\CrashControl

O arquivo que você pode especificar é o arquivo de despejo de falha. Seu nome padrão é Memory.dmp. Você pode depurar um despejo de memória com um depurador de modo kernel, como WinDbg ou KD. Para obter mais informações, consulte a documentação incluída com o depurador.

Configurando a depuração automática para falhas de aplicativos

Quando um aplicativo para de responder (por exemplo, após uma violação de acesso), o sistema invoca automaticamente um depurador especificado no registro para depuração postmortem, A ID do processo e o identificador de evento são passados para o depurador se a linha de comando estiver configurada corretamente. O procedimento a seguir descreve como especificar um depurador no Registro.

Para definir um depurador como o depurador postmortem

  1. Vá para a seguinte chave do Registo:

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

  2. Adicione ou edite o valor do Depurador , usando uma cadeia de caracteres REG_SZ que especifica a linha de comando para o depurador.

    A cadeia de caracteres deve incluir o caminho totalmente qualificado para o executável do depurador. Indique o ID do processo e o identificador de evento com os parâmetros "%ld" para a linha de comando do depurador. Diferentes depuradores podem ter suas próprias sintaxes de parâmetro para indicar esses valores. Quando o depurador é invocado, o primeiro "%ld" é substituído pelo ID do processo e o segundo "%ld" é substituído pelo identificador de evento.

    O texto a seguir é um exemplo de como configurar o WinDbg como o depurador.

    "C:\debuggers\windbg.exe" -p %ld -e %ld -g
    
  3. Se desejar que o depurador seja invocado sem interação do usuário, adicione ou edite o valor Auto, usando uma cadeia de caracteres REG_SZ que especifica se o sistema deve exibir uma caixa de diálogo para o usuário antes que o depurador seja invocado. A cadeia de caracteres "1" desativa a caixa de diálogo; A cadeia de caracteres "0" ativa a caixa de diálogo.

Excluindo uma aplicação da depuração automática

O procedimento a seguir descreve como excluir um aplicativo da depuração automática depois que o valor Auto na chave AeDebug tiver sido definido como 1.

Para excluir um aplicativo da depuração automática

  1. Vá para a seguinte chave do Registro:

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

  2. Adicione um valor REG_DWORD à subchave AutoExclusionList, onde o nome é o nome do arquivo executável e o valor é 1. Por padrão, o Desktop Window Manager (Dwm.exe) é excluído da depuração automática porque, caso contrário, um impasse do sistema pode ocorrer se Dwm.exe parar de responder (o usuário não pode ver a interface exibida pelo depurador porque Dwm.exe não está respondendo, e Dwm.exe não pode encerrar porque é mantido pelo depurador).

    Windows Server 2003 e Windows XP: A subchave AutoExclusionList não está disponível; portanto, você não pode excluir nenhum aplicativo, incluindo Dwm.exe, da depuração automática.

As entradas padrão do Registro AeDebug podem ser representadas da seguinte maneira:

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

Ativando a depuração pós-morte com o WinDbg