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 Descriptif Valeur par défaut
DOTNET_DbgEnableMiniDump Si la valeur est 1, activez la génération d'images mémoire de base. 0
DOTNET_DbgMiniDumpType Type d’image mémoire à collecter. Pour plus d’informations, consultez Types de mini-images mémoire. 2 (Heap)
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>
DOTNET_CreateDumpDiagnostics Si la valeur est définie sur 1, la journalisation des diagnostics du processus d’image mémoire est activée. 0
DOTNET_EnableCrashReport (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é.
DOTNET_CreateDumpVerboseDiagnostics 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
DOTNET_CreateDumpLogToFile 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.

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 Name Descriptif
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 natifs.