VMware 윈도우즈 커널 디버깅 환경 설정
윈도우즈 커널 디버깅을 위해 VMware를 활용해보자.
1) 호스트 PC에 Windbg를 설치한다. 검색엔진에서 Windbg 설치
를 검색하면 쉽게 마이크로 소프트 페이지를 찾을 수 있다. 설치 프로그램을 다운받아 설치를 진행한다.
2) 가상 머신의 전원을 끈 후 VM > Settings > Add > Serial Port
를 선택하여 Serial Port를 추가한다. 생성 시 Output to named pipe
옵션을 선택하고 \\.\pipe\[이름 지정]
의 형식으로 Name Pipe를 설정한다.
3) 가상 머신의 전원을 켜 C:\boot.ini
파일을 생성한다.
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /debugport=COM1 /baudrate=115200
4) 호스트 PC에서 명령 프롬프트 실행 후 Windbg 설치 디렉터리로 이동한다. windbg.exe" -k com:port=\\.\pipe\[지정한 이름],baud=115200,pipe,reconnect
명령어를 실행하여 연결을 기다린다.
5) 가상 머신을 재시작하면 호스트 PC의 Windbg에서 연결에 성공한 것을 확인할 수 있다.
6) Break(Ctrl + Break
) 버튼 선택 시 디버그 모드가 동작한다.
7) File > Symbol File Path
를 선택하여 심볼을 설정한다.
SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
웹 심볼을 설정하였으므로 진행 시 필요 파일을 C:\symbols
에 내려받아 활용하게 된다.
심볼
실행 파일 안에 존재하는 함수나 변수들의 이름과 위치, 소스 파일, 소스 라인 정보로 디버깅을 용이하게 한다.