The Prolog system provides a way to suspend the execution of your program and to enter a new incarnation of the top-level where you can issue queries to solve goals etc. This is achieved by issuing the query (see Execution):
| ?- break.
This invokes a recursive top-level, indicated by the message:
% Break level 1
You can now type queries just as if you were at top-level.
If another call of
break/0 is encountered, it moves up to level
2, and so on. To close the break and resume the execution that was
suspended, type ^D. The debugger state and current input and
output streams will be restored, and execution will be resumed at
the predicate call where it had been suspended after printing the
% End break