자자!! 이제 VMWARE도 깔았겠다… WINDBG를 깔아 봅시다 쿠쿠
하나하나 익혀나가야지~~~ 쿠쿠 설레여 막 요래!!
——————————————————————————————————————————————–
WINDBG 최신버전 받는 곳 : http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
참조 할 사이트 : http://snoya.ye.ro/driver/windbg/windbg.html
http://www.codeproject.com/debug/windbg_part1.asp <= WINDBG 사용법!!!
http://somma.egloos.com/1627566 <= 이분 블로그.. 자주 가보게 되네… 찾다보면 다 걸리네..
1. 첫단계
– 그럼이제 따라하기 시작해봅시다. 일단 위 WinDbg 다운로드 하셔서 프로그램을 설치합니다.
그리고 바탕화면에 생성된 아이콘의 속성을 선택하여 프로그램 파일뒤 파라미터 설정을하게 됩니다.
이 파라미터는 가상머신과 서로 통신을 하게될 포트를 설정하게 됩니다. 가상머신과 서로 통신하게 될 포트명은
xcom 으로 하겠습니다.
C:\WINDDK\windbg\windbg.exe -k com:pipe,port=\\.\pipe\xcom <= 요기 아래그림과 다르게 수정!
2. 두 번째 단계
– 위설정이 끝났으면 이제 가상머신 즉 윈도우 2000/xp 내 c:\ 에 있는 boot.ini 파일을 수정하는 것입니다.
이파일이 안보이면 탐색기 속성에서 시스템화일 보이기 옵션을 체크합니다. 파일 수정은 아래처럼 하시면 됩니다.
즉 실제 컴퓨터와 통신하게될 포트와 통신속도를 설정합니다. 이설정은 가상머신의 컴퓨터 부팅시 디버그모드로
부팅하기 위한 설정입니다.
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”Microsoft Windows 2000 Debug” /fastdetect /debugport=COM1 /baudrate=115200
3. 세 번째 단계
– 세 번째 단계는 깔려있는 가상머신 운영체제의 설정입니다. 기본적으로 가상머신에 os를 깔았을 경우 아래처럼 Serial 포트는
추가 되지 않습니다. 그렇기 때문에 Add 버튼을 눌러서 Serial Port를 추가합니다.
VMWARE에서 하는 부분이다 ㅡ.ㅡ; 난 장치관리자 가서 삽질했네 쿠쿠
1) Add 버튼 클릭후 아래처럼 Output to named pipe을 선택합니다.
2) 그리고다음 설정으로 그림처럼 Named pipe에 위에서 지정한 통신 포트명 xcom으로 바꾸어 줍니다.
3) 이렇게 시리얼포터 추가 설정이 끝나면 아래처럼 xcom 시리얼 포트가 추가된걸 보실수 있습니다.
4. 네 번째 단계
– 이렇게 되면 일단 실제 컴퓨터와 가상머신간의 시리얼포트를 통한 연결설정이 끝나게 됩니다. 이제부터 이렇게 설정된걸
토대로 연결을 시도해보겠습니다. 일단 가상머신을 실행시킵니다. 중요한 것은 가상머신을 실행시키고 난 다음 바로
위에서 설정한 WinDbg의 아이콘을 누릅니다. 가상머신이 어느정도 실행되면 아래처럼 선택할 수 있는 모드가 나옵니다.
위에서 boot.ini에서 설정한 모드가 나오는겁니다. 일단 디버그를 위한 것이니 Debug로 선택해서 부팅을 합니다.
– 위에처럼 가상머신을 구동함과 동시에 WinDbg프로그램을 실행시키고 부팅완료되면 아래처럼 정상적인 로딩된 화면이 나옵니다.
여기서 하나 빠뜨렸군요. 윈 WinDbg를 설정시 심블을 등록해야 합니다. 이것은 직접 다운로드 하여 깔 수 있으나
인터넷을 통해서 심블을 등록할 수가 있습니다.
WinDbg의 File -> Symbol File Path -> 아래내용을 추가합니다.
SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols;C:\WINDDK\pmdnf\objchk\i386
5. 다서번째 (마지막 디버깅)
– 자 위에서와 같은 설정이 아무 문제없이 끝났다면 이제부터 디버깅을 위한 준비는 끝났습니다.
일단 가상머신의 운영체제가 현재 부팅중이라면 Ctrl+break 키를 통시에 누르면 디버깅을 위한 콘솔로
빠지게 됩니다. 아래처럼 kd > 프롬프트 있는곳에 원하는 디버깅 명령어를 입력하여 디버깅을 하실수 있습니다.
이때는 가상머신의 운영체제는 머져 버릴 것입니다. 다시 원상태로 구동하시며면 콘손에다 g를 누르시면 됩니다.
자세한 명령어는 WinDbg 도움말을 참조하십시요.
– 컴퓨터와 연결된 상태에서 드라이버의 잘못으로 블루스크린이 발생하면 WinDbg에서 오류에 대한 보고서를 만들어 줍니다.
실제는 블루스크린 발생이전에 만들어주죠. 아래처럼 블루스크린이 최종적으로 뜨기전에 WinDbg안에서 콘솔모드로
빠져나오게 됩니다. 그리고 이에대한 분석을 하시려면 콘솔에서 !analyze -v를 치면 보고서에 대한 내용을 보여줍니다.
몰론 더 많은 명령어는 도움말을 참조하십시요.
– 위에서 !analyze -v를 사용해 드라이버의 잘못된 곳에 대한 보고내용을 보여줍니다. 아래 그림처럼 현재
KeSetEvent()함수에서 뭔가 잘못되었음을 알 수가 있습니다. 드라이버의 잘못으로 꼭 디버깅모드로 오는 것은
아닙니다. 비주얼 스튜디어 처럼 브레이크 포인트를 걸어서 하나 하나 디버깅이 가능합니다. 자신의
소스를 불러와서 F9키를 눌러서 브레이크 포인트를 잡고 가상머신을 운영중이면, 이 브레이크를 걸은 지점에
걸렸을 경우 자동으로 디버깅 콘솔모드로 빠져나와서 동작상태를 확인할 수가 있습니다.
– g 키를 눌러보면 이제 블루스크린이 뜨는걸 확인하실수가 있습니다.
< 펌 : http://blog.naver.com/j_c_hong?Redirect=Log&logNo=80006524810 >
댓글 남기기