[PATCH] Force unwind frame with user-defined personality.
Logan Chien
tzuhsiang.chien at gmail.com
Sat Jan 17 00:07:59 PST 2015
Hi danalbert, rengolin, jroelofs,
If libcxxabi is compiled as a shared library, and the
executable references the user-defined personality routines
(e.g. __gxx_personality_v0), then the pointer comparison in
Unwind-EHABI.cpp won't work. This is due to the fact that
the PREL31 will point to the PLT stubs for the personality
routines (in the executable), while the __gxx_personality_v0
symbol reference is yet another (different) PLT stub (in the
libunwind.)
This will cause _Unwind_Backtrace() stops to unwind the frame
whenever it reaches __gxx_personality_v0(). This CL fix the
problem by calling the user-defined personality routines
with an undocumented API for force unwinding.
http://reviews.llvm.org/D7032
Files:
src/Unwind/Unwind-EHABI.cpp
src/Unwind/UnwindLevel1-gcc-ext.c
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7032.18339.patch
Type: text/x-patch
Size: 5736 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150117/62194ecd/attachment.bin>
More information about the cfe-commits
mailing list