Partilhar via


Coletar despejos em caso de falha

A configuração do seu aplicativo para coletar um despejo em falha é feita definindo variáveis de ambiente específicas. Isso é útil quando você quer entender por que um acidente aconteceu. Por exemplo, capturar um despejo quando uma exceção é lançada ajuda a identificar um problema examinando o estado do aplicativo quando ele travou.

A tabela a seguir mostra as variáveis de ambiente que você pode configurar para coletar despejos em uma falha.

Variável de ambiente Description Default value
COMPlus_DbgEnableMiniDump ou DOTNET_DbgEnableMiniDump Se definido como 1, habilite a geração de dump principal. 0
COMPlus_DbgMiniDumpType ou DOTNET_DbgMiniDumpType Tipo de lixeira a ser coletada. Para obter mais informações, consulte Tipos de mini dumps. 2 (Heap)
COMPlus_DbgMiniDumpName ou DOTNET_DbgMiniDumpName Caminho para um arquivo no qual gravar o dump. Verifique se o usuário sob o qual o processo dotnet está sendo executado tem permissões de gravação para o diretório especificado. /tmp/coredump.<pid>
COMPlus_CreateDumpDiagnostics ou DOTNET_CreateDumpDiagnostics Se definido como 1, habilita o log de diagnóstico do processo de dump. 0
COMPlus_EnableCrashReport ou DOTNET_EnableCrashReport (Requer .NET 6 ou posterior; não é suportado no Windows.)
Se definido como 1, o tempo de execução gera um relatório de falhas formatado em JSON que inclui informações sobre os threads e quadros de pilha do aplicativo com falha. O nome do relatório de falhas é o caminho de despejo ou nome com .crashreport.json acrescentado.
COMPlus_CreateDumpVerboseDiagnostics ou DOTNET_CreateDumpVerboseDiagnostics (Requer .NET 7 ou posterior.)
Se definido como 1, habilita o log de diagnóstico detalhado do processo de despejo.
0
COMPlus_CreateDumpLogToFile ou DOTNET_CreateDumpLogToFile (Requer .NET 7 ou posterior.)
O caminho do arquivo no qual as mensagens de diagnóstico devem ser gravadas.
Se desconfiguradas, as mensagens de diagnóstico são gravadas no console do aplicativo com falha.

Nota

O .NET 7 padroniza o prefixo DOTNET_ em vez de para essas variáveis de COMPlus_ ambiente. No entanto, o prefixo COMPlus_ continuará a funcionar. Se você estiver usando uma versão anterior do tempo de execução do .NET, ainda deverá usar o prefixo COMPlus_ para variáveis de ambiente.

Modelos de caminho de arquivo

A partir do .NET 5, DOTNET_DbgMiniDumpName também pode incluir especificadores de modelo de formatação que serão preenchidos dinamicamente:

Especificador Value
%% Um único caractere %
%p PID do processo despejado
%e O nome do arquivo executável do processo
%h Nome do host retornado por gethostname()
%t Tempo de despejo, expresso em segundos desde a Época, 1970-01-01 00:00:00 +0000 (UTC)

Tipos de mini lixeiras

A tabela a seguir mostra todos os valores que você pode usar para DOTNET_DbgMiniDumpType. Por exemplo, definir DOTNET_DbgMiniDumpType como 1 significa que Mini o despejo de tipo será coletado em uma falha.

Valor Nome Description
5 Mini Um pequeno dump contendo listas de módulos, listas de threads, informações de exceção e todas as pilhas.
2 Heap Um dump grande e relativamente abrangente contendo listas de módulos, listas de threads, todas as pilhas, informações de exceção, informações de identificador e toda a memória, exceto imagens mapeadas.
3 Triage O mesmo que Mini, mas remove informações pessoais do usuário, como caminhos e senhas.
4 Full O maior dump contendo toda a memória, incluindo as imagens do módulo.

Somente dumps completos são suportados pelos modelos de aplicativo AOT nativo e de arquivo único.