mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-16 06:14:59 +00:00
Add support for exceptions to the debugger, and
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.
This commit is contained in:
@@ -56,6 +56,7 @@ dummy_pred_to_avoid_warning_about_nothing_exported.
|
||||
; switch
|
||||
; nondet_pragma_first
|
||||
; nondet_pragma_later
|
||||
; exception
|
||||
.
|
||||
|
||||
:- type goal_path_string == string.
|
||||
|
||||
Reference in New Issue
Block a user