2013년 6월 9일 일요일

DOSBox의 디버거

DOSBox는 다른 에뮬레이터와 같은 내장 디버거가 없는걸까? 했던 의문을 풀어야 겠습니다.
문득 DOSBox의 소스 빌드 방법을 읽어보니, 디버거를 사용하기 위해서는 빌드할 때 옵션을 새로 넣어 주어야 하는군요.

INSTALL에 디버그 옵션에 대한 설명이 있습니다.

configure에서 enable-debug를 찾으면 enable_debug 값을 바꾸고,
enable_debug를 찾아보면 C_DEBUG나 C_HEAVY_DEBUG를 헤더에 정의하게 합니다.

먼저 *_DEBUG 상수가 정의된 적이 있는지 확인해 보니 없습니다.

--enable-debug를 어디에 넣어줘야 하나 고민하다가 커맨드 라인에 넣어 봤습니다.

configure가 끝나고 확인해보니 C_DEBUG가 정의 되어 있습니다.

맨 처음의 사진에 있는 INSTALL의 설명을 읽어 보면,
DOSBox를 xterm에서 실행해야 하고, DOSBox의 sdl-window가 열린 후에 Alt + Pause를 누르면 디버거로 진입한다고 되어 있습니다.


DOSBox를 실행하자 터미널이 이렇게 바뀝니다.


Alt + Pause를 누르니 화면이 약간 바뀌면서 여기 저기 깨집니다.

화살표를 위,아래로 움직이니 Code Overview 부분이 스크롤 되는데,
위의 3줄과 아래의 1줄은 움직이질 않습니다. (번지수 확인)

help를 타이핑하니 프롬프트의 위쪽에 찍힙니다.

아직 제대로 구현이 안된걸까요?
혹시 저 터미널이 Gnome Terminal이라 xterm과 차이가 있는 걸까요?

별 기대를 하지는 않지만, heavy debug를 확인해 보기로 했습니다.

--enable-debug=heavy로 빌드한 경우의 화면

화면 깨짐이 하나도 없습니다.
Code의 스크롤도 정상이고, 레지스터도 모두 잘 보이며, 명령어 입력도 제대로 됩니다.

노멀의 DOSBox와 함께 heavy debug 버전도 하나 만들어 보관하고 있다가 필요할 때에 사용하는 것이 좋지 않을까 합니다.

댓글 없음: