proposed command set for the internal trace based debugger

Lee Naish lee at cs.mu.OZ.AU
Tue Jun 2 16:59:59 AEST 1998


Zoltan Somogyi <zs at cs.mu.OZ.AU> writes:


>At a meeting on friday, some of us have talked about what commands the
>debugger should support.

I agree in with what pets wrote.

In addition:

>skip [<num>]

The name of this command might confuse Prolog people.  Depending on how
much effort you want to put into tokenising etc, [.]+<num> could mean
the current event number + <num> and the default command could be goto.


>finish

>continue
>	Continues execution until it reaches the end of the program.

Perhaps finish would be a better name?


As a general comment, I think all the command names should be thought
through a bit more.

Also, some justification for the non-standard-Prolog ones (in terms of
debugging strategies/whatever) might be useful.

I also think it would be nice to document some kind of model of the
trace and how it related to the execution.  Personally I feel the trace
based approach doesn't emphasise the "tree" view of the execution
enough.  I think it would be worthwhile saying explicitly: This is the
kind of tree we use to model the execution; the default way of
traversing the tree is via an inorder traversal ("skip 1" gets us to the
inorder successor), "finish" jumps to the last sibling of the
current node, "XXX" gets us to the second cousin once removed, etc.

The tree view allow simpler reasoning for debugging strategies (eg,
declarative debugging), and this may make it more obvious the kind of
specialised commands that would be useful.  Eg, for debugging wrong
answers its useful to be able to scan across the exit ports which are
one level below a call/exit node which returned the wrong answer.  The
current command set (and the standard one in Prolog) don't allow you to
do this without also visiting a whole bunch on intermediate call ports,
which are not of (primary) interest.

	lee



More information about the developers mailing list