Node:CHR Debugging Predicates, Next:CHR spypoints, Previous:CHR Control Flow Model, Up:CHR Debugging
The following predicates control the operation of the CHR debugger:
chr_trace
Switches the CHR debugger on and ensures that the next time control enters a CHR port, a message will be produced and you will be asked to interact.
At this point you have a number of options. See CHR Debugging Options. In
particular, you can just type <cr> (Return) to creep (or single-step)
into your program. You will
notice that the CHR debugger stops at many ports. If this is not
what you want, the predicate chr_leash
gives full control over
the ports at which you are prompted.
chr_debug
Switches the CHR debugger on and ensures that the next time
control enters a CHR port with a spypoint set, a message will be produced
and you will be asked to interact.
chr_nodebug
Switches the CHR debugger off. If there are any spypoints set then they
will be kept.
chr_notrace
Equivalent to chr_nodebug
.
chr_debugging
Prints onto the standard error stream information about the current CHR debugging state. This will show:
chr_leash(+Mode)
The leashing mode is set to Mode. It determines the CHR ports at which you are to be prompted when you creep through your program. At unleashed ports a tracing message is still output, but program execution does not stop to allow user interaction. Note that the ports of spypoints are always leashed (and cannot be unleashed). Mode is a list containing none, one or more of the following port names:
call
exit
redo
fail
wake
try
apply
insert
remove
The initial value of the CHR leashing mode is
[call,exit,fail,wake,apply]
. Predefined shortcuts are:
chr_leash(none), chr_leash(off)
chr_leash(all)
chr_leash(default)
chr_leash([call,exit,fail,wake,apply])
.
chr_leash(call)