This section gives an overview of the advanced debugger features. These center around the notion of breakpoint. Breakpoints can be classified as either spypoints (a generalization of the plain spypoint introduced earlier) or advice-points (e.g. for checking program invariants independently from tracing). The first five subsections will deal with spypoints only. Nevertheless we will use the term breakpoint, whenever a statement is made that applies to both spypoints and advice-points. Breakpoint Processing describes the breakpoint processing mechanism in full detail. Reference style details of built-in predicates dealing with breakpoints are given in Breakpoint Predicates and in Breakpoint Conditions.