Debugging Commands Available at the FAIL_SUBGOAL Event

Debugging commands available at a leashed event are of two basic types. Some commands cause execution of the debugger to proceed as far as the next leashed event; others perform some operation and then expect another command at the same event. Commands through abort are in the former category; the remaining commands (starting with unify) are in the latter.
 

Commands That Cause Execution of the Debugger to Proceed as Far as the Next Leashed Event

exit - Exit in success. This is the normal behavior at an EXIT event; elsewhere it forces the goal to succeed immediately, without further computation. 
fail - Fail the goal. This is the normal behavior at a FAIL event; elsewhere it forces the goal to fail even if it would have succeeded. 
next - Move on to the next clause of the current predicate, abandoning further work on this clause 
over - Start the current goal over from the beginning. 
abort - Abort to top-level. 

Commands that Perform an Operation and then Expect Another Command at the Same Event

unify - Prompt for a term and then unify the current goal with it. If unification succeeds, any bindings established remain in effect through the rest of the execution of the goal. 
writeq - Write out the current goal (with any variable instantiations done so far) using writeq 
display - Display the current goal (with any variable instantiations done so far) using display 
vars - Write out variable instantiations done so far for the current goal. 
break - Enter a break loop, which will be terminated by EOF. 
+trace - Turn on exhaustive tracing, as by trace/0. 
-trace - Turn off exhaustive tracing, as by notrace/0. 
parent - Display the clause of which the current goal is a subgoal. 
history - Display the history of calls leading up to the current goal. 
? - Display a help message listing available commands and a brief description.