디버깅 메시지

디버깅 메시지

디버거가 목표를 보여줄 때 어떤 정보를 표시하는지 설명해요.

출처: GNU Prolog Manual - Debugging messages

본문

디버거가 목표를 보여줄 때 표시되는 정보의 기본 형식은 다음과 같아요:

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

더 알아보기