runtime/src/ex_stack/RTExRep.i3


Copyright (C) 1994, Digital Equipment Corp.

UNSAFE INTERFACE RTExRep;
This interface defines the low-level data structures used by the exception runtime's stack walker.

----------------------------------------- compiler generated descriptors --

TYPE
  ScopeKind = { Except, ExceptElse,
                Finally, FinallyProc,
                Raises, RaisesNone,
                Lock };

TYPE
  Scope = UNTRACED REF RECORD
    kind        : CHAR;    (* ScopeKind *)
    outermost   : CHAR;    (* BOOLEAN => last scope that covers [start..stop]*)
    end_of_list : CHAR;    (* BOOLEAN => last scope in module list *)
    pad         : CHAR;
    start       : ADDRESS; (* first PC of the handled scope *)
    stop        : ADDRESS; (* last PC of the handled scope *)
    excepts     : ADDRESS; (* NIL-terminated list of handled exceptions *)
    offset      : INTEGER; (* frame offset of ExceptionInfo *)
  END;

TYPE
  ExceptionInfo = RECORD
    exception : ADDRESS;
    arg       : ADDRESS;
  END;

END RTExRep.

RTExRep's implementation is in: