Compartilhar via


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
DOTNET_DbgEnableMiniDump Se definido como 1, habilita a geração de despejo principal. 0
DOTNET_DbgMiniDumpType Tipo de despejo a ser coletado. Para obter mais informações, confira Tipos de mini despejos. 2 (Heap)
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>
DOTNET_CreateDumpDiagnostics Se definido como 1, habilita o log de diagnóstico do processo de despejo. 0
DOTNET_EnableCrashReport (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.
DOTNET_CreateDumpVerboseDiagnostics Se definido como 1, habilita o log de diagnóstico detalhado do processo de despejo. 0
DOTNET_CreateDumpLogToFile 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.

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.