Partilhar via


Coletar despejos em caso de falha

A configuração da sua aplicação para coletar um dump em caso de 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.

Observação

A recolha de dumps não é suportada em plataformas móveis (Android e iOS).

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

Variável de ambiente Descrição Valor predefinido
DOTNET_DbgEnableMiniDump Se for definido para 1, habilita a geração de core dump. 0
DOTNET_DbgMiniDumpType Tipo de lixeira a ser coletada. Para obter mais informações, consulte Tipos de minidumps. 2 (Heap)
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>
DOTNET_CreateDumpDiagnostics Se definido como 1, habilita o log de diagnóstico do processo de dump. 0
DOTNET_DbgCreateDumpToolPath (.NET 11+ NativeAOT apenas)
Caminho até ao diretório onde está localizada a ferramenta createdump. O runtime procurará o binário createdump neste diretório. Esta variável é útil em cenários onde o createdump não vem com o runtime e precisas de "trazer a tua própria" ferramenta de geração de dumps. Esta variável de ambiente só é suportada em aplicações NativeAOT e é ignorada caso contrário.
DOTNET_EnableCrashReport (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 é formado pelo caminho de despejo ou nome ao qual se acrescenta .crashreport.json.
DOTNET_CreateDumpVerboseDiagnostics Se definido como 1, habilita o registo de diagnóstico verboso do processo de despejo. 0
DOTNET_CreateDumpLogToFile 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.

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 %
%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 para 1 significa que o tipo de despejo Mini será recolhido em caso de falha.

Valor Nome Descrição
1 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.