최대 1 분 소요

😢상황

  • 프로그램이 크래시 또는 예외 종료되면서 .dmp (메모리 덤프) 파일이 생성됨
  • 이 덤프 파일을 분석하여 당시 프로그램 상태, 호출 스택, 에러 원인을 파악하고 싶음
  • 하지만 .dmp 파일을 여는 방법이나 분석하는 절차가 익숙하지 않음

🛠️해결법

방법 1: Visual Studio로 .dmp 파일 열기

  1. Visual Studio 실행
  2. 파일 → 열기 → 파일… 선택
  3. .dmp 파일 선택
  4. “디버깅 시작” 클릭 (또는 “Minidump Debugging”)

💡 가능하다면 .pdb 심볼 파일도 함께 준비하면 정확한 함수 이름과 코드 라인을 볼 수 있음


방법 2: WinDbg로 분석 (고급)

  1. WinDbg 설치 (Windows SDK 포함)
  2. WinDbg 실행 후 .dmp 파일 열기
  3. 기본 명령어 입력
!analyze -v

🔍 자세한 크래시 원인, 예외 정보, 호출 스택 출력

💡 추가 명령어:

  • k : 호출 스택 보기
  • lm : 로드된 모듈 목록 보기
  • !threads : 스레드 상태 보기

심볼 서버 설정 (강력 추천)

정확한 디버깅을 위해 Microsoft 심볼 서버를 등록:

Visual Studio 또는 WinDbg에 다음 경로 추가:

https://msdl.microsoft.com/download/symbols

🔸 .pdb 파일이 없을 경우에도, 일부 심볼을 자동으로 받아서 분석 가능


정리: 왜 이게 효과 있었는가?

  • .dmp 파일은 프로그램 크래시 당시의 메모리 스냅샷을 저장한 것
  • 이를 통해 소스 코드 없이도 문제 발생 위치, 예외 원인, 상태를 분석 가능
  • Visual Studio는 간편하게 .dmp를 열 수 있으며, WinDbg는 더 세밀한 분석이 가능