Сбор дампов при сбое
Настройка приложения для сбора дампа при аварийном завершении выполняется путем задания определенных переменных среды. Это полезно, если вы хотите получить представление о причинах сбоя. Например, запись дампа при возникновении исключения помогает выявить проблемы путем проверки состояния приложения при его сбое.
В следующей таблице приведены переменные среды, которые можно настроить для сбора дампов при сбое.
Переменная среды | Description | Default value |
---|---|---|
COMPlus_DbgEnableMiniDump или DOTNET_DbgEnableMiniDump |
Если задано значение 1, включите создание дампа ядра. | 0 |
COMPlus_DbgMiniDumpType или DOTNET_DbgMiniDumpType |
Тип собираемого дампа. Дополнительные сведения см. в разделе "Типы мини-дампов". | 2 (Heap ) |
COMPlus_DbgMiniDumpName или DOTNET_DbgMiniDumpName |
Файл, в который записывается дамп. Убедитесь, что пользователь, в котором выполняется процесс dotnet, имеет разрешения на запись в указанный каталог. | /tmp/coredump.<pid> |
COMPlus_CreateDumpDiagnostics или DOTNET_CreateDumpDiagnostics |
Если задано значение 1, включает ведение журнала диагностики процесса дампа. | 0 |
COMPlus_EnableCrashReport или DOTNET_EnableCrashReport |
(Требуется .NET 6 или более поздней версии; не поддерживается в Windows.) Если задано значение 1, среда выполнения создает отчет о сбоях в формате JSON, содержащий сведения о потоках и кадрах стека для аварийного приложения. Имя отчета о сбоях — это путь или имя дампа с добавленным .crashreport.json . |
|
COMPlus_CreateDumpVerboseDiagnostics или DOTNET_CreateDumpVerboseDiagnostics |
(Требуется .NET 7 или более поздней версии.) Если задано значение 1, включите подробное ведение журнала диагностики процесса дампа. |
0 |
COMPlus_CreateDumpLogToFile или DOTNET_CreateDumpLogToFile |
(Требуется .NET 7 или более поздней версии.) Путь к файлу, в который должны записываться диагностические сообщения. |
Если не задано, диагностические сообщения записываются в консоль аварийного приложения. |
Примечание.
.NET 7 стандартизирует префикс DOTNET_
вместо COMPlus_
этих переменных среды. Но префикс COMPlus_
будет и дальше работать. Если вы используете предыдущую версию среды выполнения .NET, следует и дальше использовать префикс COMPlus_
для переменных среды.
Шаблоны пути к файлам
Начиная с .NET 5, DOTNET_DbgMiniDumpName
также можно включить описатели шаблона форматирования, которые будут заполнены динамически:
класса хранения | Значение |
---|---|
%% | Один символ % |
%p | Идентификатор идентификатора дампа процесса |
%e | Имя исполняемого файла процесса |
%h | Возвращаемое имя узла gethostname() |
%t | Время дампа, выраженное как секунды с эпохи, 1970-01-01 00:00:00 +0000 (UTC) |
Типы мини-дампов
В следующей таблице приведены все значения, которые можно использовать для DOTNET_DbgMiniDumpType
. Например, если установить для параметра DOTNET_DbgMiniDumpType
значение 1, при сбое будет собираться дамп типа Mini
.
Значение | Имя | Описание |
---|---|---|
1 | Mini |
Небольшой дампы, содержащий списки модулей, списки потоков, сведения об исключениях и все стеки. |
2 | Heap |
Большой и относительно полный дамп, содержащий списки модулей, списки потоков, все стеки, сведения об исключениях, обработку данных и всю память, кроме сопоставленных образов. |
3 | Triage |
То же, что и Mini , но удаляет личные сведения пользователей, например пути и пароли. |
4 | Full |
Самый большой дамп, содержащий всю память, включая образы модулей. |
Только полные дампы поддерживаются моделями приложений AOT с одним файлом и собственными приложениями AOT.