Several methods can be used to switch the debugger on. If the interactive top-level is used, the commands trace/0 and debug/0 are used to switch the debugger on for the following queries typed from the top-level. trace/0 will switch the debugger to creep mode whereas debug/0 will switch it in it leap mode. When the debugger is in it creep mode, it will prompt for a command at the crossing of the first port of a leashed procedure. When the debugger is in leap mode, it will prompt for a command at the first port of a leashed procedure that has a spy point. The debugger is switched off either from the toplevel with the commands nodebug/0 or notrace/0, or by typing n or N to the debugger prompt.
A spy point can be set on a procedure using spy/1 (which will also switch the debugger to leap) and removed with nospy/1. They both accept a SpecList as argument. Note that set_flag/3 can be used to set and reset spy points without switching the debugger on and without printing messages.
debugging/0 can be used to list the spied predicates and the current debugger mode.
[eclipse 1]: spy writeln/1. spypoint added to writeln / 1. yes. Debugger switched on - leap mode [eclipse 2]: debugging. Debug mode is leap writeln / 1 is being spied yes. [eclipse 3]: true, writeln(hello), true. B+(2) 0 CALL writeln(hello) %> l leap hello B+(2) 0 EXIT writeln(hello) %> c creep B (3) 0 CALL true %> l leap yes. [eclipse 4]: trace. Debugger switched to creep mode yes. [eclipse 5]: true, writeln(hello), true. B (1) 0 CALL true %> c creep B (1) 0 EXIT true %> c creep B+(2) 0 CALL writeln(hello) %> l leap hello B+(2) 0 EXIT writeln(hello) %> l leap yes.