This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


> 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.

Paul


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]