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 which 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 message:
     % End break