Partager via


Collecter des images mémoire en cas d’incident

La configuration de votre application pour collecter une image mémoire en cas d’incident s’effectue en définissant des variables d’environnement spécifiques. Cela est utile lorsque vous souhaitez comprendre pourquoi un incident s’est produit. Par exemple, la capture d’une image mémoire lorsqu’une exception est levée vous aide à identifier un problème en examinant l’état de l’application lorsqu’elle s’est bloquée.

Le tableau suivant présente les variables d’environnement que vous pouvez configurer pour collecter les images mémoire en cas d’incident.

Variable d’environnement Description Valeur par défaut
COMPlus_DbgEnableMiniDump ou DOTNET_DbgEnableMiniDump Si la valeur est 1, activez la génération d'images mémoire de base. 0
COMPlus_DbgMiniDumpType ou DOTNET_DbgMiniDumpType Type d’image mémoire à collecter. Pour plus d’informations, consultez Types de mini-images mémoire. 2 (Heap)
COMPlus_DbgMiniDumpName ou DOTNET_DbgMiniDumpName Chemin d’accès à un fichier où écrire l’image mémoire. Vérifiez que l’utilisateur sous lequel le processus dotnet est exécuté dispose d’autorisations d’écriture dans le répertoire spécifié. /tmp/coredump.<pid>
COMPlus_CreateDumpDiagnostics ou DOTNET_CreateDumpDiagnostics Si la valeur est définie sur 1, la journalisation des diagnostics du processus d’image mémoire est activée. 0
COMPlus_EnableCrashReport ou DOTNET_EnableCrashReport (Nécessite .NET 6 ou version ultérieure ; non pris en charge sur Windows.)
S’il est défini sur 1, le runtime génère un rapport d’incident au format JSON qui inclut des informations sur les threads et les trames de pile de l’application en panne. Le nom du rapport d’incident est le chemin d’accès à l’image mémoire ou le nom avec .crashreport.json ajouté.
COMPlus_CreateDumpVerboseDiagnostics ou DOTNET_CreateDumpVerboseDiagnostics (Nécessite .NET 7 ou une version ultérieure.)
Si la valeur est définie sur 1, la journalisation détaillée des diagnostics du processus d’image mémoire est activée.
0
COMPlus_CreateDumpLogToFile ou DOTNET_CreateDumpLogToFile (Nécessite .NET 7 ou une version ultérieure.)
Chemin d’accès du fichier dans lequel les messages de diagnostic doivent être écrits.
Si ce paramètre n’est pas défini, les messages de diagnostic sont écrits dans la console de l’application en panne.

Notes

.NET 7 normalise sur le préfixe DOTNET_ au lieu de COMPlus_ pour ces variables d’environnement. Toutefois, le préfixe COMPlus_ continuera à fonctionner. Si vous utilisez une version précédente du runtime .NET, vous devez tout de même utiliser le préfixe COMPlus_ pour les variables d’environnement.

Modèles de chemin d’accès aux fichiers

À partir de .NET 5, DOTNET_DbgMiniDumpName peut également inclure des spécificateurs de modèle de mise en forme qui seront renseignés dynamiquement :

Spécificateur Valeur
%% Caractère % unique
%p PID du processus d’image mémoire
%e Nom de fichier exécutable du processus
%h Nom d’hôte retourné par gethostname()
%t Temps d’image mémoire, exprimé en secondes depuis l’époque, 1970-01-01 00:00:00 +0000 (UTC)

Types de mini-images mémoire

Le tableau suivant présente toutes les valeurs que vous pouvez utiliser pour DOTNET_DbgMiniDumpType. Par exemple, définir la valeur DOTNET_DbgMiniDumpType sur 1 signifie que le type d’image mémoire Mini sera collecté sur un incident.

Valeur Nom Description
1 Mini Petite image mémoire contenant des listes de modules, des listes de threads, des informations d’exception et toutes les piles.
2 Heap Image mémoire volumineuse et relativement complète contenant des listes de modules, des listes de threads, toutes les piles, des informations sur l’exception, la gestion des informations et toutes les mémoires, à l’exception des images mappées.
3 Triage Identique à Mini, mais supprime les informations utilisateur personnelles, telles que les chemins d’accès et les mots de passe.
4 Full Image mémoire la plus volumineuse contenant toutes les mémoires, y compris les images de module.

Seuls les vidages complets sont pris en charge par les modèles d’application à fichier unique et AOT natif.