next up previous contents
Next: Skipping Up: Source-Level Debugger Previous: Debugger Ports and Steps   Contents

Leashing

With so many steps, and four possible ports, stepping through an entire parse in a large grammar would be a very trying experience. The ALE debugger provides three basic ways to filter through the steps to find points of interest in a parse or definite clause query.

The first is leashing. Leashing allows the user to distinguish at which steps information is simply displayed and at which steps the debugger stops and asks the user what to do. Unlike the SICStus debugger, leashing in the ALE debugger is a property of steps, not ports. The command to control leashing is dleash/1. The argument to dleash/1 consists of a sign, + or -, plus the kind of step. A + sign indicates that the debugger should stop and ask what to do at steps of that kind; and a - sign indicates that it should simply display the port and proceed. For example, to turn leashing off for empty categories, type:


  | ?- dleash(-empty).

  yes
There is also a special kind, all, that allows the user to turn on and off leashing on all kinds of steps at once. The default leashing at start-up is +all.

If a kind of step is leashed, then the debugger will stop at every port for every step of that kind, and ask what to do. The possible responses are given in Figure 7.4:

Figure 7.4: Possible Responses at Debugger Ports
\begin{figure}
\begin{tabular}{\vert l\vert l\vert l\vert} \hline
Input & Descri...
...\tt d} & display current structure & c,e,r,f \\ \hline
\end{tabular}\end{figure}

Not all responses are available at all ports. The kind of port (call, fail, etc.) is what determines the possible responses. The responses, ? and h are always available, and list the other legal responses at the current port.


next up previous contents
Next: Skipping Up: Source-Level Debugger Previous: Debugger Ports and Steps   Contents
Detmar Meurers
2001-03-03