> To my understanding this can only happen if there is control flow from
> a leaf function which in turn should only occur with signals. Perhaps
> we could modify the CFA "a bit" for the frame where the signal
> occurred? There is already a hack in uw_identify_context which does
> this for the signal frame:
>
> static inline _Unwind_Ptr
> uw_identify_context (struct _Unwind_Context *context)
> {
> /* The CFA is not sufficient to disambiguate the context of a function
> interrupted by a signal before establishing its frame and the context
> of the signal itself. */
> if (STACK_GROWS_DOWNWARD)
> return _Unwind_GetCFA (context) - _Unwind_IsSignalFrame (context);
> else
> return _Unwind_GetCFA (context) + _Unwind_IsSignalFrame (context);
> }
Why does this "hack" not work? It was precisely devised for this purpose.
--
Eric Botcazou