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


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.


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