Körningskonfigurationsalternativ för felsökning och profilering

Den här artikeln beskriver de inställningar som du kan använda för att konfigurera .NET-felsökning och profilering.

Anmärkning

Från och med .NET 11 stöder profilerarmiljövariabler både DOTNET och CORECLR prefix. Prefixet DOTNET är den nya standarden, CORECLR bibehålls för bakåtkompatibilitet och kan tas bort i framtiden.

Aktivera diagnostik

  • Konfigurerar om felsökningsprogrammet, profileraren och EventPipe-diagnostiken är aktiverade eller inaktiverade.
  • Om du utelämnar den här inställningen aktiveras diagnostik. Detta motsvarar att ange värdet till 1.
Inställningsnamn Värden
runtimeconfig.json N/A N/A
Miljövariabel DOTNET_EnableDiagnostics 1 -Aktiverat
0 -handikappad

Aktivera profilering

  • Konfigurerar om profilering är aktiverat för den process som körs.
  • Om du utelämnar den här inställningen inaktiveras profilering. Detta motsvarar att ange värdet till 0.
  • Om du vill läsa in en profilerare, förutom att aktivera profilering, måste profilerarens GUID- och profileringsplats också konfigureras med hjälp av de här inställningarna.
Inställningsnamn Värden
runtimeconfig.json N/A N/A
Miljövariabel DOTNET_ENABLE_PROFILING 0 -handikappad
1 -Aktiverat

Profilerar-GUID

  • Anger GUID för profileraren som ska läsas in i den process som körs.
Inställningsnamn Värden
runtimeconfig.json N/A N/A
Miljövariabel CORECLR_PROFILER eller DOTNET_PROFILER string-guid

Profileringsplats

När profilering har aktiverats kan profileraren läsas in på två sätt: med miljövariabler (korsplat) eller via registret (endast Windows). Miljövariablerna för profileringssökväg har företräde framför alla COM-bibliotekssökvägar i registret om båda anges.

Miljövariabel (korsplatt)

  • Anger sökvägen till profilerar-DLL:en som ska läsas in i den process som körs (eller 32-bitars eller 64-bitarsprocessen).
  • Om fler än en variabel anges har de bitnessspecifika variablerna företräde. De anger vilken bit av profilerare som ska läsas in.
Inställningsnamn Värden
Miljövariabel CORECLR_PROFILER_PATH eller DOTNET_PROFILER_PATH strängsökväg
Miljövariabel CORECLR_PROFILER_PATH_32 eller DOTNET_PROFILER_PATH_32 strängsökväg
Miljövariabel CORECLR_PROFILER_PATH_64 eller DOTNET_PROFILER_PATH_64 strängsökväg
Miljövariabel CORECLR_PROFILER_PATH_ARM32 eller DOTNET_PROFILER_PATH_ARM32 strängsökväg
Miljövariabel CORECLR_PROFILER_PATH_ARM64 eller DOTNET_PROFILER_PATH_ARM64 strängsökväg

Via registret (endast Windows)

DOTNET_PROFILER_PATH* När miljövariablerna inte anges när de körs i Windows letar coreclr upp CLSID från DOTNET_PROFILER i registret för att hitta den fullständiga sökvägen till profilerarens DLL. Precis som med alla COM-server-DLL:er slås profilerarens CLSID upp under HKEY_CLASSES_ROOT, som sammanfogar klasserna från HKLM och HKCU.

Exportera perf-kartor och jit-dumpar

  • Aktiverar eller inaktiverar perf-kartor eller jit-dumpar. Dessa filer tillåter verktyg från tredje part, till exempel Linux-verktyget perf , att tillhandahålla mänskliga läsbara namn för dynamiskt genererad kod och förkompilerade ReadyToRun-moduler (R2R).
  • Om du utelämnar den här inställningen inaktiveras båda filerna för att skriva perf-karta och jit dump. Detta motsvarar att ange värdet till 0.
  • När perf-kartor är inaktiverade kommer inte alla hanterade anropswebbplatser att lösas korrekt.
  • Beroende på Linux-kernelversionen stöds båda formaten perf av verktyget.
  • Aktivering av perf-kartor eller jitdumpar kan orsaka upp till 20% omkostnader, men ofta är det mycket mindre. För att minimera prestandapåverkan rekommenderar vi att du selektivt aktiverar antingen perf-kartor eller jitdumpar, men inte båda. Effekten inträffar bara när programmet är JITing-kod. Det inträffar ofta vid start, men det kan inträffa senare om programmet kör en ny kodsökväg för första gången.

I följande tabell jämförs perf-kartor och jit-kartor.

Format Description Stöds på
Perf-kartor Genererar /tmp/perf-<pid>.map, som innehåller symbolisk information för dynamiskt genererad kod.
Genererar /tmp/perfinfo-<pid>.map, som innehåller information om Modulen ReadyToRun (R2R) och används av PerfCollect.
Perf-kartor stöds i alla Linux-kernelversioner.
Jit dumpar Jit dump-formatet ersätter perf-kartor och innehåller mer detaljerad symbolisk information. När det är aktiverat matas jit-dumpar ut till /tmp/jit-<pid>.dump filer. Linux-kernelversioner 5.4 eller senare.
Inställningsnamn Värden
runtimeconfig.json N/A N/A
Miljövariabel DOTNET_PerfMapEnabled 0 -handikappad
1 - perf maps och jit dumpar båda aktiverade
2 – jit dumpar aktiverade
3 – perf-kartor aktiverade

Perf-loggmarkörer

  • Aktiverar eller inaktiverar den angivna signalen som ska accepteras och ignoreras som en markör i perf-loggarna.
  • Om du utelämnar den här inställningen ignoreras inte den angivna signalen. Detta motsvarar att ange värdet till 0.
Inställningsnamn Värden
runtimeconfig.json N/A N/A
Miljövariabel DOTNET_PerfMapIgnoreSignal 0 -handikappad
1 -Aktiverat

Anmärkning

Den här inställningen ignoreras om DOTNET_PerfMapEnabled utelämnas eller anges till 0 (dvs. inaktiverad).