[m-dev.] add goal path at external ports

Fergus Henderson fjh at cs.mu.OZ.AU
Wed Jan 27 21:29:10 AEDT 1999

On 25-Jan-1999, Mark Anthony BROWN <dougl at cs.mu.OZ.AU> wrote:
> I think I understand the difficulty.  Here is another problematic
> example:
> p(X, Y) :-
> 	( c(X), c(Y) ->
> 		d
> 	;
> 		e
> 	).
> If the condition fails, how do we know which call to c/1 failed?

By looking at the trace.

Or by typing "retry", "step", and then "finish" at the mdb prompt.
This will restart execution of p/2, step into the first call to c/1,
and then run until that either succeeds or fails.  If it succeeds,
then the second call must have been the one that failed.

Note however that "first" and "second" here refer to the order
in which the compiler decided to execute them, which may not
be the same as the order in the source code -- to be sure,
you will have to either inspect the arguments of p and c,
or look at the hlds dump.  Is that what you meant by the

Fergus Henderson <fjh at cs.mu.oz.au>  |  "Binaries may die
WWW: <http://www.cs.mu.oz.au/~fjh>  |   but source code lives forever"
PGP: finger fjh at        |     -- leaked Microsoft memo.

More information about the developers mailing list