WinDbg란?
Windows OS에서 실행되는 제품을 개발한 후
사용중인데 프로그램이 갑자기 종료되거나 오류가 발생하는 경우가 생길 수 있음.
이런 경우 개발자는 본인이 만든 제품에 문제가 있을 시 원인을 찾아야하는데
이러한 오류를 분석하는 과정을 디버깅이라고 함.
Windows 경우에는 프로그램이 runtime error가 발생하거나 원인 불명으로 종료되는 경우
당시의 상황을 파일형태로 남겨놓을 수 있는데
그 파일을 Dump파일이라고 함.
그렇다면 개발자는 이러한 Dump파일을 분석해야
정확한 오류의 원인을 파악하고 프로그램을 수정할 수 있음.
WinDbg는 개발자가 Dump파일을 분석할 때 사용할 수 있는 Tool임.
MS에서 배포하는 Windows OS 전용 디버깅 툴로
유져모드 어플리케이션, 드라이버 및 커널모드에서 Windows OS의 Dump파일을 디버깅을 할 수 있음.
WinDbg 설치 방법
설치 링크 : https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk
해당 링크에서 파일을 받은 뒤
아래 그림에서 Debugging Tools for Windows 를 선택하고
install 진행
메모리 덤프( Dump )파일
기억 장치의 내용을 출력
기억 장치의 내용정보 일부 또는 전부를 출력한 파일
덤프 파일 종류
전체 덤프
User Mini Dump File with Full Memory
응용프로그램이 사용하던 모든 메모리가 유효
미니 덤프
User Mini Dump File
레지스터, 스택, 메모리 포인터만 유효
덤프파일 만들기
방법 1. 작업관리자 창 이용
작업관리자 -> 프로세스 -> 프로세스 우클릭 -> 덤프파일 만들기
방법 2. Process explorer 이용
프로세스 마우스 우클릭 -> Create Dump -> Create Full Dump
방법 3. WinDbg 이용
프로세스를 WinDbg 로 open 후
Crush 발생 후
.dump /f "경로\생성할 파일이름"
명령 수행
WinDbg 프로세스 Crash 발생 시 자동으로 붙게하기
Crash 시 WinDbg 열리도록 설정하기
1. WinDbg 위치로 이동
default 설치 위치 : "C:\Program Files (x86)\Windows Kits\10\Debuggers\"
2. Bits 에 맞는 폴더 이동 후 cmd로 해당 경로 이동
32Bits 프로그램 Crash 탐지할려면 x86 Windbg 를 등록해야함
64Bits 프로그램 Crash 탐지할려면 x64 Windbg 를 등록해야함
3. 명령어 입력
windbg.exe -I
(대문자 알파벳 I)
4. 설정 확인
[레지스트리 확인]
컴퓨터\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug
[Crash 시 WinDbg가 열리는 경우]
[참고 : Crash 시 Visual studio가 열리는 경우는 아래와 같이 설정되어있음]
제 글을 복사할 시 출처를 명시해주세요.
글에 오타, 오류가 있다면 댓글로 알려주세요! 바로 수정하겠습니다!
'Tool 사용법 > WinDBG' 카테고리의 다른 글
WinDBG 프로세스 디버깅 (유저모드 라이브 디버깅) (0) | 2020.09.11 |
---|---|
WinDBG Dump 파일 디버깅 (유저모드 덤프 디버깅) (0) | 2020.09.11 |
WinDBG Symbol File 이란? (0) | 2020.09.11 |