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