Options de configuration du runtime pour le débogage et le profilage

Cet article détaille les paramètres que vous pouvez utiliser pour configurer le débogage et le profilage .NET.

Notes

.NET 6 se normalise sur le préfixe DOTNET_ au lieu de COMPlus_ pour les variables d’environnement qui configurent le comportement au moment de l’exécution de .NET. 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_.

Activation des diagnostics

  • Configure si les diagnostics du débogueur, du profileur et EventPipe sont activés ou désactivés.
  • Si vous omettez ce paramètre, les diagnostics sont activés. Ceci équivaut à définir la valeur 1.
Nom du paramètre Valeurs
runtimeconfig.json N/A N/A
Variable d'environnement COMPlus_EnableDiagnostics ou DOTNET_EnableDiagnostics 1 - activé
0 - désactivé

Activer le profilage

  • Configure si le profilage est activé pour le processus en cours d’exécution.
  • Si vous omettez ce paramètre, le profilage est désactivé. Ceci équivaut à définir la valeur 0.
Nom du paramètre Valeurs
runtimeconfig.json N/A N/A
Variable d'environnement CORECLR_ENABLE_PROFILING 0 - désactivé
1 - activé

GUID du profileur

  • Spécifie le GUID du profileur à charger dans le processus en cours d’exécution.
Nom du paramètre Valeurs
runtimeconfig.json N/A N/A
Variable d'environnement CORECLR_PROFILER string-guid

Emplacement du profileur

  • Spécifie le chemin de la DLL du profileur à charger dans le processus en cours d’exécution (ou processus 32 bits ou 64 bits).
  • Si plusieurs variables sont définies, les variables spécifiques au nombre de bits sont prioritaires. Ils spécifient le nombre de bits du profileur à charger.
  • Pour plus d’informations, consultez Recherche de la bibliothèque du profileur.
Nom du paramètre Valeurs
Variable d'environnement CORECLR_PROFILER_PATH string-path
Variable d'environnement CORECLR_PROFILER_PATH_32 string-path
Variable d'environnement CORECLR_PROFILER_PATH_64 string-path

Exporter des mappages de performance et des images mémoire jit

  • Active ou désactive l’activation sélective des mappages de performance ou des images mémoire jit. Ces fichiers permettent aux outils tiers, comme l’outil Linux perf, d’identifier les sites d’appel pour le code généré dynamiquement et les modules ReadyToRun (R2R) précompilés.
  • Si vous omettez ce paramètre, l’écriture des fichiers de mappage de performance et d’image mémoire jit est désactivée. Ceci équivaut à définir la valeur 0.
  • Lorsque les mappages de performances sont désactivés, tous les sites d’appels gérés ne sont pas correctement résolus.
  • En fonction de la version du noyau Linux, les deux formats sont pris en charge par l’outil perf.
  • L’activation des mappages de performances occasionne une surcharge de 10 à 20 %. Pour réduire l’impact sur les performances, une activation sélective des mappages de performances ou des images mémoire jit est recommandée, mais pas les deux.

Le tableau suivant compare les mappages de performances et les mappages jit.

Format Description Prise en charge sur
Mappages de performance Émet /tmp/perf-<pid>.map qui contient des informations symboliques pour le code généré dynamiquement.
Émet /tmp/perfinfo-<pid>.map qui contient les informations sur le symbole du module ReadyToRun (R2R) et est utilisée par PerfCollect.
Les mappages de performance sont pris en charge sur toutes les versions du noyau Linux.
Images mémoire Jit Le format de l’image mémoire jit remplace les mappages de performance et contient des informations symboliques plus détaillées. Lorsque cette option est activée, les images mémoire jit sont générées dans des fichiers /tmp/jit-<pid>.dump. Version 5.4 (ou ultérieure) du noyau Linux.
Nom du paramètre Valeurs
runtimeconfig.json N/A N/A
Variable d'environnement COMPlus_PerfMapEnabled ou DOTNET_PerfMapEnabled 0 - désactivé
1 – mappages de performance et images mémoire jit activés
2 – images mémoire jit activées
3 – mappages de performance activés

Marqueurs de journal de performances

  • Permet ou non d’accepter et d’ignorer le signal spécifié en tant que marqueur dans les journaux de performances.
  • Si vous omettez ce paramètre, le signal spécifié n’est pas ignoré. Ceci équivaut à définir la valeur 0.
Nom du paramètre Valeurs
runtimeconfig.json N/A N/A
Variable d'environnement COMPlus_PerfMapIgnoreSignal ou DOTNET_PerfMapIgnoreSignal 0 - désactivé
1 – activé

Notes

Ce paramètre est ignoré si DOTNET_PerfMapEnabled est omis ou défini sur 0 (c’est-à-dire désactivé).