[m-dev.] proposed command set for the internal trace based debugger

Zoltan Somogyi zs at cs.mu.OZ.AU
Wed Jun 3 15:09:52 AEST 1998


On 03-Jun-1998, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> > The only catch I can is this: once you get to the simulate_redo label,
> > how do you know which predicate it is that you are redoing?
> 
> To answer my own question: the dummy frame that you push
> should have a slot containing the proc_layout pointer.

This is not enough, since it identifies only the procedure, and not the
specific call to the procedure (call number, call depth, input arguments).
To simulate the REDO trace event, you need the call-specific info, in fact
you need all the args to MR_trace (although the "max active register number"
will always be zero).

The call number and depth can be included in the frame with the simulate_redo
redoip itself, in fixed slot positions. Another a fixed slot can point to
a label layout structure saying which framevars contain the input args.
The succfr pointer of the frame contains these framevars.

If necessary, we could preserve the output args as well in their own framevars,
although this would cost extra time and space.

Zoltan.



More information about the developers mailing list