7.11.4 Commands
At the above mentioned prompts, the following commands may be given.
Most commands can be abbreviated by their first letter.
It is also legal to press return without specifying a command.
If there is a default answer (see Oracle questions),
pressing return is equivalent to giving that answer.
If there is no default answer,
pressing return is equivalent to the skip command.
yes- Answer `yes' to the current question.
no- Answer `no' to the current question.
inadmissible- Answer that the call is inadmissible.
trust- Answer that the predicate or function the question is about does not contain
any bugs. However predicates or functions called by this predicate/function
may contain bugs. The debugger will not ask you further questions about the
predicate or function in the current question.
trust module- Answer that the module the current question relates to does not contain any
bugs. No more questions about any predicates or functions from this module
will be asked.
skip- Skip this question and ask a different one if possible.
undo- Undo the most recent answer or mode change.
mode [ top-down | divide-and-query | binary ]- Change the current search mode. The search modes may be abbreviated to
‘td’, ‘dq’ and ‘b’ respectively.
browse [--xml] [n]- Start the interactive term browser and browse the nth argument
before answering. If the argument number
is omitted then browse the whole call as if it were a data term.
While browsing a ‘track’ command may be issued to find the point at
which the current subterm was bound (see Improving the search).
To return to the declarative debugger question issue a ‘quit’
command from within the interactive term browser. For more information
on the use of the interactive term browser see the ‘browse’ command
in Browsing commands or type ‘help’ from within the
interactive query browser.
Giving the ‘--xml’ or ‘-x’ option causes the term to be displayed
in an XML browser.
browse io [--xml] n- Browse the nth IO action.
print [n]- Print the nth argument of the current question. If no
argument is given then display the current question.
print io n- Print the nth IO action.
print io n-m- Print the nth to mth IO actions (inclusive).
print io limits- Print the values for which ‘print n’ makes sense.
print io- Print some I/O actions,
starting just after the last action printed (if there was one)
or at the first available action (if there was not).
format format- Set the default format to format,
which should be one of ‘flat’, ‘verbose’ and ‘pretty’.
depth num- Set the maximum depth to which terms are printed to num.
depth io num- Set the maximum depth to which I/O actions are printed to num.
I/O actions are printed using the browser's ‘print *’ command so the
‘depth io’ command updates the configuration parameters for the
browser's ‘print *’ command.
size num- Set the maximum number of function symbols
to be printed in terms to num.
size io num- Set the maximum number of function symbols
to be printed in I/O actions to num.
I/O actions are printed using the browser's ‘print *’ command so the
‘size io’ command updates the configuration parameters for the
browser's ‘print *’ command.
width num- Set the number of columns in which terms are to be printed to num.
width io num- Set the number of columns in which I/O actions are to be printed to num.
I/O actions are printed using the browser's ‘print *’ command so the
‘width io’ command updates the configuration parameters for the
browser's ‘print *’ command.
lines num- Set the maximum number of lines in terms to be printed to num.
lines io num- Set the maximum number of lines in I/O actions to be printed to num.
I/O actions are printed using the browser's ‘print *’ command so the
‘lines io’ command updates the configuration parameters for the
browser's ‘print *’ command.
actions num- Set the maximum number of I/O actions to be printed in questions to num.
params- Print the current values of browser parameters.
track [-a] [term-path]- The ‘track’ command can only be given from within the interactive
term browser and tells the declarative debugger to find the point at which
the current subterm was bound.
If no argument is given the current subterm is taken to be incorrect.
If a term-path is given then the subterm at term-path relative to
the current subterm will be considered incorrect.
The declarative debugger will ask about the call that bound the given subterm
next.
To find out the location of the unification that bound the subterm,
issue an ‘info’ command when asked about the call that bound the subterm.
The declarative debugger can use one of two algorithms to find the
point at which the subterm was bound.
The first algorithm uses some heuristics
to find the subterm more quickly than the second algorithm.
It is possible, though unlikely,
for the first algorithm to find the wrong call.
The first algorithm is the default.
To tell the declarative debugger to
use the second, more accurate but slower algorithm,
give the ‘-a’ or ‘--accurate’ option to the ‘track’ command.
mark [-a] [term-path]- The ‘mark’ command has the same effect as the ‘track’ command
except that it also asserts that the atom is inadmissible or erroneous,
depending on whether the subterm is input or output respectively.
pd- Commence procedural debugging from the current point.
This command is notionally the inverse of the ‘dd’ command
in the procedural debugger.
The session can be resumed with a ‘dd --resume’ command.
quit- End the declarative debugging session and return to
the event at which the ‘dd’ command was given.
The session can be resumed with a ‘dd --resume’ command.
info- List the filename and line number of the predicate the current question
is about as well as the filename and line number where the predicate
was called (if this information is available). Also print some information
about the state of the bug search, such as the current search mode,
how many events are yet to be eliminated and the reason for asking
the current question.
help [command]- Summarize the list of available commands or give help on a specific
command.