Sdílet prostřednictvím


Shromažďování výpisů stavu systému při chybovém ukončení

Konfigurace aplikace tak, aby shromažďovala výpis stavu systému, se provádí nastavením konkrétních proměnných prostředí. To je užitečné, když chcete pochopit, proč došlo k chybovému ukončení. Například zachycení výpisu paměti při vyvolání výjimky vám pomůže identifikovat problém prozkoumáním stavu aplikace při chybovém ukončení.

Následující tabulka ukazuje proměnné prostředí, které můžete nakonfigurovat pro shromažďování výpisů paměti v chybovém ukončení.

Proměnná prostředí Popis Default value
COMPlus_DbgEnableMiniDump nebo DOTNET_DbgEnableMiniDump Pokud je nastavená hodnota 1, povolte generování výpisu paměti jádra. 0
COMPlus_DbgMiniDumpType nebo DOTNET_DbgMiniDumpType Typ výpisu paměti, který se má shromáždit. Další informace naleznete v tématu Typy mini výpisů paměti. 2 (Heap)
COMPlus_DbgMiniDumpName nebo DOTNET_DbgMiniDumpName Cesta k souboru pro zápis výpisu paměti. Ujistěte se, že uživatel, pod kterým je spuštěný proces dotnet, má oprávnění k zápisu do zadaného adresáře. /tmp/coredump.<pid>
COMPlus_CreateDumpDiagnostics nebo DOTNET_CreateDumpDiagnostics Pokud je nastavená hodnota 1, povolí protokolování diagnostiky procesu výpisu paměti. 0
COMPlus_EnableCrashReport nebo DOTNET_EnableCrashReport (Vyžaduje .NET 6 nebo novější, nepodporuje se ve Windows.)
Pokud je nastavená hodnota 1, modul runtime vygeneruje zprávu o chybovém ukončení ve formátu JSON, která obsahuje informace o vláknech a rámech zásobníku chybové aplikace. Název zprávy o chybovém ukončení je cesta k výpisu paměti nebo název s připojeným .crashreport.json .
COMPlus_CreateDumpVerboseDiagnostics nebo DOTNET_CreateDumpVerboseDiagnostics (Vyžaduje .NET 7 nebo novější.)
Pokud je nastavená hodnota 1, povolí podrobné protokolování diagnostiky procesu výpisu paměti.
0
COMPlus_CreateDumpLogToFile nebo DOTNET_CreateDumpLogToFile (Vyžaduje .NET 7 nebo novější.)
Cesta k souboru, do kterého se mají zapsat diagnostické zprávy.
Pokud ji nenasadíte, zapíšou se diagnostické zprávy do konzoly chybové aplikace.

Poznámka:

.NET 7 standardizuje předponu DOTNET_ místo COMPlus_ těchto proměnných prostředí. Předpona COMPlus_ ale bude i nadále fungovat. Pokud používáte předchozí verzi modulu runtime .NET, měli byste stále používat předponu COMPlus_ pro proměnné prostředí.

Šablony cest k souborům

Počínaje rozhraním .NET 5 může obsahovat také specifikátory šablon formátování, DOTNET_DbgMiniDumpName které budou vyplněny dynamicky:

Specifikátor Hodnota
%% Jeden znak %
%p PID výpisu stavu procesu
%e Název spustitelného souboru procesu
%h Název hostitele se vrátí podle gethostname()
%t Čas výpisu, vyjádřený jako sekundy od Epochy, 1970-01-01 00:00:00 +0000 (UTC)

Typy mini výpisů paměti

V následující tabulce jsou uvedeny všechny hodnoty, které můžete použít pro DOTNET_DbgMiniDumpType. Například nastavení DOTNET_DbgMiniDumpType na 1 znamená, že Mini se při chybovém ukončení shromáždí výpis typu.

Hodnota Název Popis
1 Mini Malý výpis paměti obsahující seznamy modulů, seznamy vláken, informace o výjimce a všechny zásobníky.
2 Heap Velký a relativně komplexní výpis obsahující seznamy modulů, seznamy vláken, všechny zásobníky, informace o výjimce, zpracování informací a veškerou paměť s výjimkou mapovaných obrázků.
3 Triage Stejné jako Mini, ale odebere osobní informace o uživatelích, jako jsou cesty a hesla.
4 Full Největší výpis paměti obsahující veškerou paměť včetně imagí modulů.

Pouze úplné výpisy paměti jsou podporovány modely jednosouborových a nativních aplikací AOT.