eh interface questions
Richard Henderson
rth at redhat.com
Thu Feb 22 18:47:21 UTC 2001
] typedef void (*_Unwind_Exception_Cleanup_Fn)
] (_Unwind_Reason_Code reason,
] struct _Unwind_Exception *exc);
What is the purpose of the reason code here? Yes, once can indicate
why someone other than the normal language runtime is deleting the
exception, but what's the point?
] _Unwind_Reason_Code (*__personality_routine)
] (int version,
] _Unwind_Action actions,
] uint64 exceptionClass,
] struct _Unwind_Exception *exceptionObject,
] struct _Unwind_Context *context);
Why bother passing exceptionClass here (and to _Unwind_Stop_Fn) when
it is available in exceptionObject->exception_class? And come to
think of is, what sort of exceptionClass should longjmp_unwind provide?
] uint64 _Unwind_GetRegionStart
] (struct _Unwind_Context *context);
This is all well and good for function-relative code addresses, but
what about data addresses? The HP LSDA, for instance, contains
GP-relative pointers to type_info objects. That GP base is of course
for the target DSO, not necessarily the current DSO.
Given that HPUX and AIX (for example) don't respect a fixed offset
between text and data segments, certainly something of this nature
is required.
r~
More information about the cxx-abi-dev
mailing list