Coletar despejos em caso de falha
A configuração de seu aplicativo para coletar um despejo em uma falha é feita definindo variáveis de ambiente específicas. Isso é útil quando você quer entender por que uma falha ocorreu. Por exemplo, capturar um despejo quando uma exceção é lançada ajuda a identificar o problema examinando o estado do aplicativo no momento da falha.
A tabela a seguir mostra as variáveis de ambiente que você pode configurar para coletar despejos em caso de falha.
Variável de ambiente | Descrição | Valor padrão |
---|---|---|
COMPlus_DbgEnableMiniDump ou DOTNET_DbgEnableMiniDump |
Se definido como 1, habilita a geração de despejo principal. | 0 |
COMPlus_DbgMiniDumpType ou DOTNET_DbgMiniDumpType |
Tipo de despejo a ser coletado. Para obter mais informações, confira Tipos de mini despejos. | 2 (Heap ) |
COMPlus_DbgMiniDumpName ou DOTNET_DbgMiniDumpName |
Caminho do arquivo em que será gravado o despejo. Verifique se o usuário sob o qual o processo dotnet está sendo executado tem permissões de gravação no diretório especificado. | /tmp/coredump.<pid> |
COMPlus_CreateDumpDiagnostics ou DOTNET_CreateDumpDiagnostics |
Se definido como 1, habilita o log de diagnóstico do processo de despejo. | 0 |
COMPlus_EnableCrashReport ou DOTNET_EnableCrashReport |
(Requer .NET 6 ou posterior, sem suporte no Windows.) Se definido como 1, o runtime gerará um relatório de falha formatado em JSON, que inclui informações sobre os threads e os quadros de pilha do aplicativo com falha. O nome do relatório de falha é o caminho de despejo ou o nome com .crashreport.json acrescentado. |
|
COMPlus_CreateDumpVerboseDiagnostics ou DOTNET_CreateDumpVerboseDiagnostics |
(Requer o .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 o .NET 7 ou posterior.) O caminho do arquivo no qual as mensagens de diagnóstico devem ser gravadas. |
Se não estiver definido, as mensagens de diagnóstico serão gravadas no console do aplicativo com falha. |
Observação
O .NET 7 padroniza o prefixo DOTNET_
em vez de COMPlus_
para essas variáveis de ambiente. No entanto, o prefixo COMPlus_
continuará funcionando. Se você estiver usando uma versão anterior do runtime do .NET, continue usando 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 | Valor |
---|---|
%% | Um único caractere de % |
%p | PID do processo despejado |
%e | O nome do arquivo executável do processo |
%h | Retorno do nome do host por gethostname() |
%t | Hora do despejo, expressa em segundos desde a época, 1970-01-01 00:00:00 +0000 (UTC) |
Tipos de mini despejos
A tabela a seguir mostra todos os valores que você pode usar para DOTNET_DbgMiniDumpType
. Por exemplo, definir DOTNET_DbgMiniDumpType
como 1 significa que o despejo de tipo Mini
será coletado em caso de falha.
Valor | Nome | Descrição |
---|---|---|
1 | Mini |
Um pequeno despejo contendo listas de módulos, listas de threads, informações de exceção e todas as pilhas. |
2 | Heap |
Um despejo grande e relativamente abrangente que contém listas de módulos, listas de threads, todas as pilhas, informações de exceção, informações de manipulação e toda a memória, exceto imagens mapeadas. |
3 | Triage |
O mesmo que Mini , mas remove as informações pessoais do usuário, como caminhos e senhas. |
4 | Full |
O maior despejo que contém toda a memória, incluindo as imagens do módulo. |
Há suporte apenas para despejos completos nos modelos de aplicativo AOT nativo e de arquivo único.