WinDbg
WinDbg(Windows Debugger)는 Microsoft가 Windows용 응용 프로그램·운영체제 커널 및 드라이버의 오류를 분석하기 위해 제공하는 디버거다. 실행 중인 프로세스나 원격 커널에 연결해 스택·레지스터·메모리·모듈을 검사하고, 블루스크린이나 애플리케이션 충돌의 덤프...
| 정식 명칭 | Windows Debugger |
|---|---|
| 분류 | Windows 응용 프로그램·커널 디버거 |
| 개발사 | Microsoft |
| 지원 대상 | Win32 프로그램, Windows 커널·드라이버 |
| 실행 환경 | Windows Debugging Tools |
| 대상 데이터 | 실행 프로세스·커널 덤프·크래시 덤프 |
| 주요 기능 | 스택·레지스터·메모리·심벌 조사 |
| 명령 | !analyze, k, lm, dv 등 |
| 심벌 | PDB, Microsoft Symbol Server |
| 자동화 | DbgEng API와 확장·스크립트 |
| 버전 | WinDbg(Preview/modern WinDbg 포함) |
| 제공 | WDK와 별도 설치·Microsoft Store 등 |
| 공식 문서 | Microsoft Learn: WinDbg |
| 명령 가이드 | WinDbg Command Reference |
WinDbg(Windows Debugger)는 Microsoft가 Windows용 응용 프로그램·운영체제 커널 및 드라이버의 오류를 분석하기 위해 제공하는 디버거다. 실행 중인 프로세스나 원격 커널에 연결해 스택·레지스터·메모리·모듈을 검사하고, 블루스크린이나 애플리케이션 충돌의 덤프 파일을 분석할 수 있다. Windows Driver Kit의 개발과 특히 밀접하지만 일반 Win32 프로그램·서비스의 디버깅에도 사용된다.[1]
디버거는 프로그램의 실행을 중단하고 스레드별 호출 스택과 함수 매개변수·변수 상태 및 명령어 주소를 확인한다. PDB 심벌과 Microsoft Symbol Server를 사용하면 바이너리 주소를 함수·소스 파일 위치와 연결할 수 있지만 정확한 디버깅에는 실제 빌드와 일치하는 심벌이 필요하다. 애플리케이션 덤프와 커널 덤프는 포함한 메모리·시스템 정보의 범위가 다르다.
명령 기반 분석에서 k는 호출 스택, lm은 로드된 모듈, !analyze는 오류 분석 등을 제공한다. WinDbg 확장 명령은 드라이버 객체·메모리 풀 및 커널 자료 구조를 조사한다. 스크립트와 Debugger Engine(DbgEng) API를 결합해 반복 작업과 오류 분류를 자동화할 수도 있다.[2]
WinDbg의 사용자 인터페이스와 배포 방식은 여러 세대에 걸쳐 개선됐으며 최신 제품은 기존 명령·확장 호환성을 유지하면서 새로운 UI를 제공한다. 디버거를 사용한다고 버그의 원인이 항상 자동으로 판정되는 것은 아니며 메모리 손상과 동시성·드라이버 오류는 분석자의 검증이 필요하다. 민감한 메모리 정보가 덤프에 포함될 수 있으므로 저장·공유 권한과 보안 정책을 준수해야 한다.