All trace messages are output to the standard error stream. This allows you to trace programs while they are performing file I/O. The basic format is as follows:
S 3 1 try eratosthenes:absorb(10) @ prime(9)#<c4>, prime(10)#<c2> ?
S is a spypoint indicator. It is printed as
if there is
no spypoint, as r
, indicating that there is a spypoint on this
rule, or as c
if one of the involved constraints has a spypoint.
The first number indicates the current depth of the execution; i.e. the number of direct ancestors the currently active constraint has.
The second number indicates the head position of the currently active constraint at rule ports.
The next item tells you which port is currently traced.
A constraint or a matching rule are printed next.
Constraints print as Term#Id
, where Id is a unique
identifier pointing into the constraint store.
Rules are printed as Handler:Name @
, followed by the constraints
matching the heads.
The final ?
is the prompt indicating that you should type in one of the
debug options (see CHR Debugging Options).