Zbieranie zrzutów w przypadku awarii

Skonfigurowanie aplikacji w celu zbierania zrzutu awaryjnego odbywa się przez ustawienie określonych zmiennych środowiskowych. Jest to przydatne, gdy chcesz zrozumieć, dlaczego doszło do awarii. Na przykład przechwytywanie zrzutu, gdy zgłaszany jest wyjątek, pomaga zidentyfikować problem, sprawdzając stan aplikacji po awarii.

W poniższej tabeli przedstawiono zmienne środowiskowe, które można skonfigurować do zbierania zrzutów w przypadku awarii.

Zmienna środowiskowa opis Domyślna wartość
COMPlus_DbgEnableMiniDump lub DOTNET_DbgEnableMiniDump Jeśli ustawiono wartość 1, włącz generowanie zrzutu podstawowego. 0
COMPlus_DbgMiniDumpType lub DOTNET_DbgMiniDumpType Typ zrzutu do zebrania. Aby uzyskać więcej informacji, zobacz Typy mini zrzutów. 2 (Heap)
COMPlus_DbgMiniDumpName lub DOTNET_DbgMiniDumpName Ścieżka do pliku w celu zapisania zrzutu. Upewnij się, że użytkownik, w ramach którego jest uruchomiony proces dotnet, ma uprawnienia do zapisu w określonym katalogu. /tmp/coredump.<pid>
COMPlus_CreateDumpDiagnostics lub DOTNET_CreateDumpDiagnostics Jeśli ustawiono wartość 1, włącza rejestrowanie diagnostyczne procesu zrzutu. 0
COMPlus_EnableCrashReport lub DOTNET_EnableCrashReport (Wymaga platformy .NET 6 lub nowszej; nieobsługiwanej w systemie Windows).
Jeśli ustawiono wartość 1, środowisko uruchomieniowe generuje raport awarii w formacie JSON zawierający informacje o wątkach i ramkach stosu aplikacji, która ulega awarii. Nazwa raportu awarii to ścieżka lub nazwa zrzutu z dołączonym .crashreport.json .
COMPlus_CreateDumpVerboseDiagnostics lub DOTNET_CreateDumpVerboseDiagnostics (Wymaga platformy .NET 7 lub nowszej).
Jeśli ustawiono wartość 1, włącza pełne rejestrowanie diagnostyczne procesu zrzutu.
0
COMPlus_CreateDumpLogToFile lub DOTNET_CreateDumpLogToFile (Wymaga platformy .NET 7 lub nowszej).
Ścieżka pliku, do którego powinny być zapisywane komunikaty diagnostyczne.
Jeśli nie zostanie zdenerwowany, komunikaty diagnostyczne są zapisywane w konsoli aplikacji, która uległa awarii.

Uwaga

Program .NET 7 standardizuje prefiks DOTNET_ zamiast COMPlus_ dla tych zmiennych środowiskowych. COMPlus_ Jednak prefiks będzie nadal działać. Jeśli używasz poprzedniej wersji środowiska uruchomieniowego platformy .NET, nadal należy użyć prefiksu COMPlus_ dla zmiennych środowiskowych.

Szablony ścieżek plików

Począwszy od platformy .NET 5, można również uwzględnić specyfikatory szablonu formatowania, DOTNET_DbgMiniDumpName które będą wypełniane dynamicznie:

Specyfikator Wartość
%% Pojedynczy znak %
%p PiD procesu dumpingowego
%e Nazwa pliku wykonywalnego procesu
%h Nazwa hosta zwracana przez gethostname()
%t Czas zrzutu, wyrażony jako sekundy od epoki, 1970-01-01 00:00:00 +0000 (UTC)

Typy mini zrzutów

W poniższej tabeli przedstawiono wszystkie wartości, których można użyć dla elementu DOTNET_DbgMiniDumpType. Na przykład ustawienie DOTNET_DbgMiniDumpType wartości 1 oznacza, że Mini zrzut typu zostanie zebrany w przypadku awarii.

Wartość Nazwa/nazwisko opis
1 Mini Mały zrzut zawierający listy modułów, listy wątków, informacje o wyjątkach i wszystkie stosy.
2 Heap Duży i stosunkowo kompleksowy zrzut zawierający listy modułów, listy wątków, wszystkie stosy, informacje o wyjątkach, obsługa informacji i wszystkie pamięci z wyjątkiem zamapowanych obrazów.
3 Triage Takie same jak Mini, ale usuwa osobiste informacje o użytkowniku, takie jak ścieżki i hasła.
100 Full Największy zrzut zawierający całą pamięć, w tym obrazy modułów.