!TITLE Debugging
!KEY
The  current  debugging  package  is  only  preliminary  and is currently being
enhanced. The appearance of the  debugging  aids  is  thus  likely  to  change;
however,  the  predicates  described  here  will  not change - rather they will
gradually be made more effective.

debug       Debug mode is switched on. Information will  now  be  retained  for
            debugging purposes and executions will require more space.
nodebug     Debug  mode  is switched off. Information is no longer retained for
            debugging.

trace       Debug mode is switched on, and an immediate CREEP decision is made,
            so that tracing will start with the very next  port  through  which
            control passes.  Since this is a once-off decision, a call to trace
            is  necessary  whenever tracing is required right from the start of
            an execution.  (The assumed decision is otherwise LEAP).

spy Spec    Spy-points will be placed on all the procedures given by Spec.  All
            control flow through the ports of these procedures will  henceforth
            be  traced.    If  debug  mode  was previously off, then it will be
            switched on.  Spec can either be a predicate specification  of  the
            form  Name/Arity  or  Name, or a list of such specifications.  When
            the Name is given without the Arity this refers to  all  predicates
            of  that name which currently have definitions.  If there are none,
            then nothing will be done.  Spy-points can be placed on  particular
            undefined procedures only by using the full form, Name/Arity.

nospy Spec  Spy-points  are  removed  from all the procedures given by Spec (as
            for spy).

debugging   Outputs information concerning the status of the debugging package.
            This will show whether debug mode is on, and if it is -

               1. what spy-points have been set

               2. what mode of leashing is in force.

