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. |
Tylko pełne zrzuty są obsługiwane przez modele aplikacji single-file i Native AOT.