An FDBG event can (currently) belong to one of the two following major classes:
These events are intercepted by the FDBG core. When any of them occurs, the appropriate visualizer (see FDBG Visualizers) gets called with a representation of the event (a Prolog term) as extra arguments.
Note that it is not possible to debug
indexicals with FDBG. What's more, any domain narrowings done by
indexicals happen unnoticed, making FDBG output harder to follow. On
the other hand, arithmetical constraints (like X #> 0
) are
translated to global constraints instead of indexicals after consulting
library(fdbg)
, and therefore don't lead to any misunderstandings. For
this latter reason it is advisable to load library(fdbg)
before any user programs.