디버깅 메시지
디버깅 메시지
디버거가 목표를 보여줄 때 어떤 정보를 표시하는지 설명해요.
본문
디버거가 목표를 보여줄 때 표시되는 정보의 기본 형식은 다음과 같아요:
S N M Port : Goal ?
- S는 스파이 포인트 표시자예요. 현재 목표에 스파이 포인트가 있으면
+기호가 표시되고, 그렇지 않으면 공백이 표시돼요. - N은 호출 번호(invocation number)예요. 이 고유 번호는 각 호출마다 유일하므로 여러 포트의 추적 메시지를 서로 연관 짓는 데 쓸 수 있어요.
- M은 목표의 직접 조상(direct ancestor) 수(즉 목표의 현재 깊이)를 나타내는 인덱스 번호예요.
- Port는 특정 포트(
call,exit,fail,redo,exception)를 지정해요. - Goal은 현재 목표(그 현재 인스턴스화 상태를 검사할 수 있음)이며,
write_term/3을quoted(true)와max_depth(D)옵션으로 사용해 표시돼요(8.14.6절). 처음에 D(인쇄 깊이)는 10으로 설정되지만<디버거 명령어로 재정의할 수 있어요(5.5절). - ? 기호는 디버거가 사용자 명령을 기다릴 때 표시돼요(즉 Port가 리싱된 포트일 때). 포트가 리싱되지 않았다면 이 기호는 표시되지 않고 디버거는 다음 목표를 표시하며 실행을 계속해요.