[m-dev.] for review: mdb support for exceptions
Mark Anthony BROWN
dougl at cs.mu.OZ.AU
Thu Dec 10 14:34:02 AEDT 1998
Hello,
Fergus Henderson writes:
> --------------------
>
> Estimated hours taken: 8
>
> Add support for exceptions to the debugger, and
> add support for debugging to the exception module.
>
> browser/debugger_interface.m:
> Add `exception' to the trace_port_type enumeration.
>
> runtime/mercury_trace_base.h:
> Add MR_PORT_EXCEPTION to the MR_Trace_Port enumeration.
>
> trace/mercury_trace_internal.c:
> trace/mercury_trace.h:
> trace/mercury_trace.c:
> Modify the code to handle MR_PORT_EXCEPTION.
>
> extras/exceptions/exception.m:
> - Define stack layout structures for the hand-written procedures
> `builtin_throw' and `builtin_catch'.
> - Use mktempframe() rather than mkframe() to allocate the temporary
> frames used to prevent hijacking of the exception-catching frame
> (this is more efficient, and avoids the need to give a stack
> layout for those frames).
> - Change the code for builtin_throw/1 so that if MR_trace_enabled
> is true, it calls a new function trace_throw(), which calls
> MR_trace(..., MR_PORT_EXCEPTION, ...) for each stack frame.
> - Fix some type errors occurring for non-GC grades.
> - Fix some uses of obsolete names (e.g. replace `hp' with `MR_hp').
>
> runtime/mercury_trace_base.c:
> compiler/trace.m:
> Add some comments relating to the above changes.
>
In extras/exceptions/exception.m:
> + MR_succip = (Code *) MR_succip;
This seems wrong.
> + succip = (Code *) MR_stackvar(1);
s/succip/MR_succip/
The rest of the changes are okay.
Cheers,
Mark
--
Mark Brown (dougl at cs.mu.oz.au) )O+ | For Microsoft to win,
MEngSc student, | the customer must lose
Dept of Computer Science, Melbourne Uni | -- Eric S. Raymond
More information about the developers
mailing list