디버거 명령어

디버거 명령어

디버거가 리싱된 포트에 도달하면 현재 목표와 ? 기호를 표시해요. 이 시점에 사용할 수 있는 많은 명령어가 있어요.

출처: GNU Prolog Manual - Debugger commands

본문

디버거가 리싱된 포트에 도달하면 현재 목표와 ? 기호를 표시해요. 이 시점에 많은 명령어가 사용 가능해요. RETURN을 입력하면 프로그램을 크릅해요. 계속 크릅하면 모든 제어 흐름이 표시돼요. 디버거는 실행 중 만나는 모든 술어의 모든 포트를 보여줘요. 디버거가 사용자에게 프롬프트할 포트를 내장 술어 leash/1(5.3.2절)로 선택할 수 있어요.

각 명령어는 한 글자만 길이로 가져요:

명령어 이름 설명
RET 또는 c creep 다음 포트로 단일 단계 진행
l leap 스파이 포인트가 있는 목표에 도달할 때까지 실행 계속
s skip 현재 목표의 전체 실행을 건너뜀. 제어가 돌아올 때까지 메시지가 표시되지 않음
g go 호출 번호를 묻고 그 호출 번호에 대한 포트에 도달할 때까지 실행 계속
r retry 목표의 호출에 도달할 때까지 실패시켜 현재 목표의 호출을 다시 시작하려 시도. 실행 상태는 목표가 처음 호출됐을 때와 동일(부작용 술어 사용 시 제외)
f fail 현재 목표를 즉시 실패시키도록 강제
w write write/2(8.14.6절)로 현재 목표 표시
d display display/2(8.14.6절)로 현재 목표 표시
p print print/2(8.14.6절)로 현재 목표 표시
e exception 대기 중인 예외를 표시. exception 포트에만 적용
g ancestors 현재 목표의 조상 목록 표시
A alternatives 선택점과 결합된 현재 목표의 조상 목록 표시
u unify 항을 묻고 현재 목표를 이 항과 통일. 특정 해를 얻는 데 편리. call 포트에서만 사용 가능
. father file 현재 술어가 정의된 Prolog 파일 이름과 줄 번호 표시
n no debug 디버거 끔. nodebug/0(5.3.1절)과 동일
= debugging 디버거 정보 표시. debugging/0(5.3.1절)과 동일
+ spy this 현재 목표에 스파이 포인트 설정. spy/1(5.3.3절) 사용
- nospy this 현재 목표에서 스파이 포인트 제거. nospy/1(5.3.3절) 사용
* spy conditionally Goal, Port, Test(마침표로 끝남)를 묻고 현재 술어에 조건부 스파이 포인트 설정. Goal과 현재 목표는 같은 술어 표시자여야 함. spypoint_condition/3(5.3.3절) 사용
L listing 현재 술어와 연관된 모든 절 나열. listing/1(8.23.3절) 사용
a abort 현재 실행 중단. abort/0(8.18.1절)과 동일
b break 재귀적 top-level 호출. break/0(8.18.1절)과 동일
@ execute goal 목표를 묻고 그것을 실행
< set print depth 정수를 묻고 인쇄 깊이를 이 값으로 설정(-1은 깊이 제한 없음)
h 또는 ? help 사용 가능한 명령어 요약 표시
W WAM debugger 저수준 WAM 디버거 호출(5.6절)

더 알아보기