Next: , Up: Declarative debugging   [Contents][Index]

7.11.1 Overview

The declarative debugger tries to find a bug in your program by asking questions about the correctness of calls executed in your program.

Because pure Mercury code does not have any side effects, the declarative debugger can make inferences such as “if a call produces incorrect output from correct input, then there must be a bug in the code executed by one of the descendents of the call”.

The declarative debugger is therefore able to automate much of the ‘detective work’ that must be done manually when using the procedural debugger.