일단 Cygwin에 gdb가 깔려잇어야 하는데요, 뭐 설치하실때 다른거 설치햇듯이 해주셔면 됩니다. (이미 설치되잇으신 분은 setup.exe 다시 실행해서 하면 되요 ㅋ)

그리고 디버깅할 땐 잠시 최적화 옵션을 빼고 -ggdb로 바꿉시다 ㅎㅎ..


VMWare 가상머신 파일 .vmx에 다음 3줄을 메모장을 쓰던지 해서 추가해 줍니다


debugStub.listen.guest32 = "TRUE"

debugStub.hideBreakpoints = "TRUE"

monitor.debugOnStartGuest32 = "TRUE"


그리고 가상머신을 키면 멈춰잇는 상태일텐데, 여기서 gdb를 켜줍니다.

이때 커널 컴파일할때, 링커(ld)가 뱉은 결과물 잇엇죠? 그것을 인수로 줍니다.

(또 소스 파일이 잇는 디렉토리에서 gdb를 실행하거나, -d 옵션으로 위치를 알려줘야 해요)


그다음 다음 명령어를 쳐주면...

target remote localhost:8832


그러면 무려 C언어 소스 레벨에서 OS를 디버깅하는 짜릿함이 으핳핳...

TUI가 불편하시면, emacs나 IDA Pro, VIsualGDB같은 GUI 툴을 쓰시면 되겟습니다. (개인적으로 insight 쓰려고 햇는데.. 바이너리 버전은 못찻겟고 소스 버전은 컴파일에러가..)