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, then it moves up to level
2, and so on. To close the break and resume the execution that was
suspended, type ^D or equivalent. 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
message:
% End break