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. |
Solo i dump completi sono supportati dai modelli di app a file singolo e AOT nativo.