llvm-project/libcxxabi/src
Logan Chien 6b2c971524 Force unwind frame with user-defined personality.
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.

llvm-svn: 226822
2015-01-22 13:38:11 +00:00
..
Unwind Force unwind frame with user-defined personality. 2015-01-22 13:38:11 +00:00
CMakeLists.txt [cmake/multilib] Teach libc++abi's CMake build to support multilib 2014-12-29 12:22:04 +00:00
abort_message.cpp Fix abort_message.cpp for the NDK. 2015-01-16 20:00:49 +00:00
abort_message.h Work on restricting symbol visibility. 2012-02-02 20:47:28 +00:00
config.h s/LIBCXXABI_SINGLE_THREADED/LIBCXXABI_HAS_NO_THREADS/ for consistency with libcxx 2014-09-05 17:46:40 +00:00
cxa_aux_runtime.cpp Adding ABI support for __cxa_throw_bad_array_new_length. 2014-09-11 17:26:43 +00:00
cxa_default_handlers.cpp Use __atomic_exchange_n instead of Clang's __sync_swap 2014-10-03 20:03:47 +00:00
cxa_demangle.cpp Minor libc++abi changes to make things build better with gcc. 2014-06-25 23:55:37 +00:00
cxa_exception.cpp s/LIBCXXABI_SINGLE_THREADED/LIBCXXABI_HAS_NO_THREADS/ for consistency with libcxx 2014-09-05 17:46:40 +00:00
cxa_exception.hpp Update libc++abi to use the ARM EHABI unwinder from its libunwind. 2014-06-25 23:52:07 +00:00
cxa_exception_storage.cpp s/LIBCXXABI_SINGLE_THREADED/LIBCXXABI_HAS_NO_THREADS/ for consistency with libcxx 2014-09-05 17:46:40 +00:00
cxa_guard.cpp s/LIBCXXABI_SINGLE_THREADED/LIBCXXABI_HAS_NO_THREADS/ for consistency with libcxx 2014-09-05 17:46:40 +00:00
cxa_handlers.cpp Use __atomic_exchange_n instead of Clang's __sync_swap 2014-10-03 20:03:47 +00:00
cxa_handlers.hpp Bruce Mitchener: Typo fixes. 2013-02-15 15:48:49 +00:00
cxa_new_delete.cpp If libc++ has not declared bad_array_length, then declare it here just so that it gets into the binary. 2013-11-07 17:16:37 +00:00
cxa_personality.cpp Fix _Unwind_Backtrace for libc++abi built with libgcc. 2015-01-22 13:28:39 +00:00
cxa_thread_atexit.cpp [libcxxabi] Add __cxa_thread_atexit for TLS support on Linux. 2014-12-18 00:03:57 +00:00
cxa_unexpected.cpp Add a descriptive name for a constant. Also I'm at least temporarily waging war on throw specs, both old and new style. Except where we have already publicly exposed the throw spec, I'm getting rid of them. They may come back later. But they seem somewhat prone to cyclic dependencies here. The throw spec implies compiler generated code that this library has to jump to during stack unwinding. I'd like to minimize the possiblity that the code used to properly make that jump is itself creating such jumps. 2012-01-30 16:07:00 +00:00
cxa_vector.cpp [libcxxabi] Fix broken codesourcery.com links in comments 2014-02-12 04:49:09 +00:00
cxa_virtual.cpp use abort_message() 2011-08-02 01:19:07 +00:00
exception.cpp Add some needed symbols in exception.cpp and eliminate dependence upon uncaught_exception() from cxa_vector.cpp. libc++abi is very nearly a self-contained (though not complete) library now. 2012-01-24 21:48:10 +00:00
fallback_malloc.ipp s/LIBCXXABI_SINGLE_THREADED/LIBCXXABI_HAS_NO_THREADS/ for consistency with libcxx 2014-09-05 17:46:40 +00:00
private_typeinfo.cpp [libcxxabi] Delay adjustment of pointer to prevent referencing invalid memory. 2014-11-24 18:46:37 +00:00
private_typeinfo.h Make the type_info for __shim_type_info visible. This should address some failing dynamic_casts that a few applications are doing on the type_info hierarchy. 2012-10-13 18:45:59 +00:00
stdexcept.cpp Make libc++abi use the implementation of __numstr from libc++. No functionality change, just removal of duplicated code. 2014-05-07 20:17:41 +00:00
typeinfo.cpp Work on restricting symbol visibility. 2012-02-02 20:47:28 +00:00