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).