CHR Debugging Messages

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