디버거 명령어
디버거 명령어
디버거가 리싱된 포트에 도달하면 현재 목표와 ? 기호를 표시해요. 이 시점에 사용할 수 있는 많은 명령어가 있어요.
본문
디버거가 리싱된 포트에 도달하면 현재 목표와 ? 기호를 표시해요. 이 시점에 많은 명령어가 사용 가능해요. 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/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절) |