Compartilhar 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.

Configurando a depuração automática para falhas do sistema

Para configurar o computador de destino para gerar um arquivo de despejo de memória quando o sistema parar de responder, use o aplicativo Sistema no Painel de Controle. Clique em Configurações avançadas do sistema, que exibe a caixa de diálogo Propriedades do sistema. Na guia Avançado dessa caixa, clique em Configurações em Inicialização e Recuperação e use as opções de recuperação apropriadas. Como alternativa, você pode configurar opções de despejo de memória usando a seguinte chave do Registro:

\HKEY_LOCAL_MACHINE SISTEMA\Controle\CurrentControlSet\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 aplicativo

Quando um aplicativo pára 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 eventos 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 post-mortem

  1. Vá para a seguinte chave do Registro:

    \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 a ID do processo e o identificador de eventos com parâmetros "%ld" para a linha de comando do depurador. Depuradores diferentes podem ter suas próprias sintaxes de parâmetro para indicar esses valores. Quando o depurador é chamado, o primeiro "%ld" é substituído pelo ID do processo e o segundo "%ld" é substituído pelo identificador de eventos.

    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 a 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 chamado. A cadeia de caracteres "1" desabilita a caixa de diálogo; A cadeia de caracteres "0" habilita a caixa de diálogo.

Excluindo um aplicativo 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 deadlock 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 de registro padrão do AeDebug podem ser representadas da seguinte maneira:

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

Habilitando a depuração post-mortem com WinDbg