Raccogliere i dump in caso di arresto anomalo del sistema

La configurazione dell'applicazione per raccogliere un dump in caso di arresto anomalo del sistema viene eseguita impostando specifiche variabili di ambiente. Questo è utile quando si vuole comprendere il motivo per cui si è verificato un arresto anomalo. Ad esempio, l'acquisizione di un dump quando viene generata un'eccezione consente di identificare un problema esaminando lo stato dell'app in caso di arresto anomalo.

La tabella seguente illustra le variabili di ambiente che puoi configurare per la raccolta dei dump in caso di arresto anomalo del sistema.

Variabile di ambiente Descrizione Default value
COMPlus_DbgEnableMiniDump oppure DOTNET_DbgEnableMiniDump Se impostate su 1, abilitano la generazione di dump core. 0
COMPlus_DbgMiniDumpType oppure DOTNET_DbgMiniDumpType Tipo di dump da raccogliere. Per altre informazioni, vedere Tipi di mini dump. 2 (Heap)
COMPlus_DbgMiniDumpName oppure DOTNET_DbgMiniDumpName Percorso di un file in cui scrivere il dump. Verificare che l'utente per il quale è in esecuzione il processo dotnet disponga delle autorizzazioni di scrittura per la directory specificata. /tmp/coredump.<pid>
COMPlus_CreateDumpDiagnostics oppure DOTNET_CreateDumpDiagnostics Se impostato su 1, abilita la registrazione diagnostica del processo di dump. 0
COMPlus_EnableCrashReport oppure DOTNET_EnableCrashReport Richiede .NET 6 o versione successiva, non supportato in Windows.
Se impostato su 1, il runtime genera un report di arresto anomalo in formato JSON che include informazioni sui thread e sugli stack frame dell'applicazione che si arresta in modo anomalo. Il nome del report di arresto anomalo del sistema è il percorso o il nome del dump con .crashreport.json in coda.
COMPlus_CreateDumpVerboseDiagnostics oppure DOTNET_CreateDumpVerboseDiagnostics Richiede .NET 7 o versione successiva.
Se impostato su 1, abilita la registrazione diagnostica dettagliata del processo di dump.
0
COMPlus_CreateDumpLogToFile oppure DOTNET_CreateDumpLogToFile Richiede .NET 7 o versione successiva.
Percorso del file in cui devono essere scritti i messaggi di diagnostica.
Se non è impostato, i messaggi di diagnostica vengono scritti nella console dell'applicazione che si arresta in modo anomalo.

Nota

.NET 7 standardizza il prefisso DOTNET_ anziché COMPlus_ per queste variabili di ambiente. Tuttavia, il prefisso COMPlus_ continuerà a funzionare. Se si usa una versione precedente del runtime .NET, è comunque consigliabile usare il prefisso COMPlus_ per le variabili di ambiente.

Modelli di percorso file

A partire da .NET 5, DOTNET_DbgMiniDumpName può includere anche specifiche del modello di formattazione che verranno compilate in modo dinamico:

Identificatore Valore
%% Un singolo carattere %
%p PID del processo sottoposto a dump
%e Nome file eseguibile del processo
%h Nome host restituito da gethostname()
%t Tempo di dump, espresso in secondi dall'epoca, 1970-01-01 00:00:00 +0000 (UTC)

Tipi di mini dump

Nella tabella seguente vengono illustrati tutti i valori che puoi usare per DOTNET_DbgMiniDumpType. Ad esempio, l'impostazione DOTNET_DbgMiniDumpType su 1 indica che il dump di tipo Mini verrà raccolto in caso di arresto anomalo del sistema.

valore Nome Descrizione
1 Mini Un dump di dimensioni limitate contenente elenchi di moduli, elenchi di thread, informazioni sulle eccezioni e tutti gli stack.
2 Heap Dump di grandi dimensioni e relativamente completo contenente elenchi di moduli, elenchi di thread, tutti gli stack, le informazioni sulle eccezioni, informazioni di gestione e tutta la memoria, a eccezione delle immagini mappate.
3 Triage Come Mini, ma rimuove le informazioni personali dell'utente, ad esempio percorsi e password.
4 Full Il dump più grande contenente tutta la memoria, incluse le immagini del modulo.