크래시 발생 시 덤프 수집
크래시 발생 시 덤프를 수집하도록 애플리케이션을 구성하는 작업은 특정 환경 변수를 설정하여 수행됩니다. 그러면 크래시가 발생한 이유를 파악하려는 경우에 유용합니다. 예를 들어 예외가 throw될 때 덤프를 캡처하면 크래시된 앱의 상태를 검사하여 문제를 식별하는 데 도움이 됩니다.
다음 표에서는 크래시 발생 시 덤프를 수집하기 위해 구성할 수 있는 환경 변수를 보여 줍니다.
환경 변수 | 설명 | 기본값 |
---|---|---|
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은 이러한 환경 변수에 대해 COMPlus_
대신 접두사 DOTNET_
(을)를 표준화합니다. 그러나 COMPlus_
접두사도 계속 작동합니다. 이전 버전의 .NET 런타임을 사용하는 경우에도 환경 변수에 COMPlus_
접두사를 사용해야 합니다.
파일 경로 템플릿
.NET 5부터 DOTNET_DbgMiniDumpName
에는 동적으로 채워지는 서식 지정 템플릿 지정자를 포함될 수도 있습니다.
지정자 | 값 |
---|---|
%% | 단일 % 문자 |
%p | 덤프된 프로세스의 PID |
%e | 프로세스 실행 파일 이름 |
%h | gethostname() (으)로 호스트 이름 반환 |
%t | Epoch 이후 초로 표현된 덤프 시간, 1970-01-01 00:00:00 +0000(UTC) |
미니 덤프 유형
다음 표는 DOTNET_DbgMiniDumpType
에 사용할 수 있는 모든 값을 보여 줍니다. 예를 들어 DOTNET_DbgMiniDumpType
을 1로 설정하면 크래시 발생 시 Mini
유형 덤프가 수집됩니다.
값 | 이름 | 설명 |
---|---|---|
1 | Mini |
모듈 목록, 스레드 목록, 예외 정보 및 모든 스택을 포함하는 작은 덤프입니다. |
2 | Heap |
모듈 목록, 스레드 목록, 모든 스택, 예외 정보, 핸들 정보 및 매핑된 이미지를 제외한 모든 메모리를 포함하는 비교적 포괄적인 대규모 덤프입니다. |
3 | Triage |
Mini 와 동일하지만, 경로 및 암호와 같은 개인 사용자 정보를 제거 합니다. |
4 | Full |
모듈 이미지를 포함한 모든 메모리를 포함하는 가장 큰 덤프입니다. |
단일 파일 및 네이티브 AOT 앱 모델에서는 전체 덤프만 지원됩니다.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET