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.