허대영.
LMC-1.3.3.7버전에서 발견한 오류입니다.
LMC_ROOT/debugger/debugger.c 파일에서 WATCH() 전처리기 함수에서 메모리 주소 및 데이터를 출력하는 lmcprintf() 호출을 살펴보면 기본적으로 watch할 항목의 시작 주소와 데이터를 출력하는 아래 문장은 올바르게 동작합니다.lmcprintf(W_CONSOLE,\
"%2d@%04d%04d|%04d\n", \
watchnum, \
address/MAX_BOX, \
address%MAX_BOX, \
MEM(address));\
그러나 2개 이상의 Box를 출력해야 할 경우를 처리하게 되는 다음 문장에서는 address와 value가 섞여 출력되는 문제가 있었습니다.
else \
lmcprintf(W_CONSOLE, " %04d%04d|%04d\n", address, MEM(address)); // 세 개의 인자가 필요함.
이 문장을 아래와 같이 고치어 정상적으로 출력됨을 확인하였습니다.
else \
lmcprintf(W_CONSOLE, " %04d%04d|%04d\n", \
address/MAX_BOX, address%MAX_BOX, MEM(address));
이상입니다.
작성자 : 국민대학교 컴퓨터공학과 20113248 강인구