[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