AW: [PATCH] eh_personality.cc: unwinding on ARM

Peter Waechtler pwaechtler@mac.com
Mon Mar 19 21:43:00 GMT 2012


On 19.03.2012 18:32, Paul Brook wrote:
>> while I have your attention: what is an virtual unwind frame? ;)
> No such thing exists.
>
> Throwing an exception is a muti-stage process.  It requires unwinding the
> stack frame twice, taking different actions in the process.  "Forced"
> unwinding and backtracing add extra complications.  The _US_* flags tell the
> PR which stage in the process we're at.
>
> IIRC the ARM EABI doesn't officially include forced unwinding, it's something
> we had to bolt on afterwards.  For added fun the ARM EABI defines the set of
> states/actions somewhat differently to the DWARF unwinder.
>
> Forced unwinding is one of the warts that come from interaction between C++
> and POSIX.  Almost noone really understands how all these bits fit together.
Thanx Paul, that one gave me a good laugh. :))

I worked several months (not full-time, only every now and then) to nail 
this loop down.

It's definitely  a fix for upstream - saving the sanity of some souls.

     Peter







More information about the Libstdc++ mailing list