다음을 통해 공유


크래시 발생 시 덤프 수집

크래시 발생 시 덤프를 수집하도록 애플리케이션을 구성하는 작업은 특정 환경 변수를 설정하여 수행됩니다. 그러면 크래시가 발생한 이유를 파악하려는 경우에 유용합니다. 예를 들어 예외가 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 모듈 이미지를 포함한 모든 메모리를 포함하는 가장 큰 덤프입니다.