Age | Commit message (Collapse) | Author |
|
Summary: Since the personality functions do the actual unwinding on ARM,
and will also stop unwinding when they encounter a handler, we invoke
_Unwind_VRS_Interpret() directly form _Unwind_Backtrace().
To simplify, the logic for decoding an EHT is moved out of
unwindOneFrame() and into its own function, decode_eht_entry(). Unlike
unwindOneFrame(), which could only handle ARM's compact personality
function entries (section 6.3) decode_eht_entry() can handle the generic
entries (section 6.2).
Reviewers: jroelofs
Reviewed By: jroelofs
Subscribers: piman, aemerson, cfe-commits
Differential Revision: http://reviews.llvm.org/D5112
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@216730 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit 14690900fcd84fbf82767890f4d7a5673654fe38)
Bug: 16874447
Change-Id: Ia52c7e2a0b7167863fea29cbf4b2d3c5d58053b2
|
|
Reverting because there is a more complete fix available upstream (one
that can fully unwind in the presence of generic EHT entries).
This reverts commit 0edf7c5360403441c060618014887e9a723fe423.
Bug: 16874447
Change-Id: I5aa38183237865187156a8d8a050fd09a04ef109
|
|
I accidentally included some test code that I if'd 0 out. Remove it.
Bug: 16874447
Change-Id: I2ffd8120e2bb088def001125c023173a2cce1e08
|
|
The unwind code does not properly update the IP when on arm.
There is still a bug in this unwinding code, it stops unwinding at the
first catch it finds.
Bug: 16874447
Change-Id: I40a4d8990246dccad18612c7291d00293266d9bc
|
|
In Android, stderr only goes to the console, and as such will only ever
be seen by adb shell users. Since very few developers will ever actually
see that, also send the abort message to logcat and the tombstone.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@215983 91177308-0d34-0410-b5e6-96231b3b80d8
Bug: 17059126
Change-Id: I67055243d0750b1ea3cf5c77e911353cc9905878
(cherry picked from commit f02f3d37e0309314ce69f9bf49f17f54bed2c109)
|
|
So we can do tapas build in the full platform source tree.
Change-Id: Ia924f5d4a0159e5773dadf7516e509061fba8b1c
(cherry picked from commit 9ed4d5de04a63f2445a56f63d07a15e6eb64d4d4)
|
|
Only use the LLVM unwinder for ARM.
The LLVM unwinder now supports ARM EHABI, so we can finally use that for
exception handling on ARM. The unwinder doesn't work for other
architectures though (aside from on Darwin), so use libunwind for now.
Change-Id: Ife8b0b33dbfe96c10eab102cd36d30149d68ace9
|
|
Includes ARM EHABI unwinder.
Change-Id: I7e40c761abc0a4c67f11b8e9f85efefa6ba292ba
|
|
The was working because, given __APPLE__, _LIBUNWIND_BUILD_SJLJ_APIS was set to
__arm__, but other ARM targets not using SJ/LJ will fail to compile.
Change-Id: Id774f1c6aa20661e289dbe18145532dbba6791d7
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@206941 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
Use arch-specific variables instead of checking TARGET_ARCH, which
doesn't work in multlib build.
Change-Id: If05af37c2df9d9f9bc756792a19fd34e8fe72316
|
|
Change-Id: Id3ee2e6b6153c355441016b479b75351030f6217
|
|
* commit 'd5cc515c98421408b082fb82bbb3e947f2583e6f':
Add LOCAL_ADDITIONAL_DEPENDENCIES on Android.mk
|
|
Change-Id: Ic74564ccf6e0525e667a6d9e8b0bb283fffd0a32
|
|
* commit '873f8586ee0ba081b0537f84dc827a400d0bc73d':
Switch to static libs
|
|
Change-Id: I6009c3e13f81cfe7743b9675292b7c7eb5082e48
|
|
* commit 'ab22a8fc0e1fd348c19b99efa183ffd8c00af815':
Changes so name to match cmake target
|
|
Change-Id: I6489f371d3ad19f2b7e850ed15fcf60a0d98807e
|
|
* commit '6b8852417f55cd373059531acae36fc3b052e88b':
Removes libstdc++ dependency from host builds
|
|
* commit '45b27bb2d849cde9dcbb9ee702373150a060c480':
Replaces strlcpy() with strncpy() equivalent
|
|
Change-Id: I00d2ab87bb8f34c2787afc4766d7413b2655bffe
|
|
This is necessary for building libc++abi in non-BSD environments.
Change-Id: Ia550a40b6f520a69bef963268eb2fb3c3c9c4401
|
|
* commit 'd71a0e613da222c193732a46056e8d9881040f98':
Enable MIPS builds.
|
|
Change-Id: I47fb51d32bfa5fa175ff066b477dfb0597625873
|
|
* commit '285d67f35f6044cf733091e36248405ca967c62c':
Don't build libcxx_abi for unbundled projects.
|
|
* commit '09437217701ee0d16962250b375698ceece839e8':
Add Apple-specific files for libunwind.
|
|
* commit 'b21e7e40b9f751f956cdc437b6546c3052d6b604':
Fixes build on arm64
|
|
* commit '39c04b7ea5f24565206478880df2cdc26fc8214d':
Disables building of libcxxabi on mips targets
|
|
* commit 'ddd1d803cc32902bb545fce2b19077375964f5dc':
Gets libcxxabi building for Android
|
|
* commit '685b686397762543524a8496c4901332588e7349':
Revert "Gets libcxxabi building for Android"
|
|
* commit 'fa2203904bdca85115bf2fcb9bd70150dffa9bbe':
Gets libcxxabi building for Android
|
|
* commit '426b4a2074546a3be819110978876163a8f1704c':
Add module notice.
|
|
* commit 'd998eb96ae9865bbd7b1711abcf4c9c6f4ff2304': (257 commits)
Initial empty repository
Simplify.
Fix DW_CFA_GNU_args_size handling. The primary architecture using this opcode is VAX. A function call pushes the number of arguments given onto the stack and "ret" will pop it automatically. The FDE of the caller contains the amount of stack space used for arguments (and possibly extra padding), so unwinding has to compensate for this when "returning" from a function. This is exactly the case when step() is done. The existing handling in unw_set_reg no longer makes sense.
0 is a valid LSDA encoding and can be seen in statically linked programs. Initialize lsdaEncoding to DW_EH_PE_omit and check for that value to decide whether a value should be decoded.
Demangle Dc to decltype(auto) as per the Itanium C++ ABI spec.
[libcxxabi] Fix broken codesourcery.com links in comments
Fix PR17221 - can't catch virtual base classes when throwing derived NULL pointers. Specifically, libc++abi would crash when you tried it.
Fix PR17222 - catching derived classes from thrown null pointer. Adds tests, too
[libunwind] remove stray conditional
Use .p2align instead of .align
Add missing alignment directives in assembly
Don't redefine static_assert()
Fix unwinder to build for iOS
Implement demangling for user-defined operators.
Update the copyright credits -- Happy new year 2014!
Add a first cut at a Registers_arm class, to be used for 32bit arm EHABI unwinding.
Add mangling macros for Unwind's inline assembly.
Fix demangling crasher. The crasher involved nested <encoding> involving parameter packs, which exposed a logic bug causing an empty vector<string> to be accessed with back(). In addition to fixing the bug, I've inserted numerous preemptive checks for similar bugs in the hopes that if another bug is uncovered, the bug results in an invalid mangled string instead of a demangler crash. Test suite updated with string that was causing the crash.
Rename UnwindRegisters*.s files to UnwindRegisters*.S, step 2 of 2
Rename UnwindRegisters*.s files to UnwindRegisters*.S, step 1 of 2
...
|
|
It is preinstalled from prebuilts/sdk instead.
Change-Id: Ife0cec3a944fb3c4f7d77b4397decae58ff14529
|
|
Change-Id: I133910cc56fccb7f6ad094b355261890c53dace5
|
|
Change-Id: I2116e33691e3f4e99cccc6819f7b85783069c790
|
|
Change-Id: I435898547be3aa5e20c455c373c17ad10bfdfe10
|
|
|
|
Fixes a few configuration issues in libcxxabi and adds an Android makefile.
Change-Id: I247372d87caabe0310bedc4540b68ab2ed1986c1
|
|
This reverts commit fa2203904bdca85115bf2fcb9bd70150dffa9bbe.
Change-Id: Ifbe705df19347ea11b858ec5e0a4b61bc2f922c5
|
|
Fixes a few configuration issues in libcxxabi and adds an Android makefile.
Change-Id: I7b55f9ff0d7025cb316695fcb6c592db9ab7dd38
|
|
Change-Id: I0d8ad33f38e5ca6addbb3da01275cf0c87ed7195
|
|
|
|
|
|
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@204292 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
opcode is VAX. A function call pushes the number of arguments given onto
the stack and "ret" will pop it automatically. The FDE of the caller
contains the amount of stack space used for arguments (and possibly
extra padding), so unwinding has to compensate for this when "returning"
from a function. This is exactly the case when step() is done. The
existing handling in unw_set_reg no longer makes sense.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@204290 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
programs. Initialize lsdaEncoding to DW_EH_PE_omit and check for that
value to decide whether a value should be decoded.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@203626 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@201533 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
review: http://llvm-reviews.chandlerc.com/D2718
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@201208 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
pointers. Specifically, libc++abi would crash when you tried it.
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@200904 91177308-0d34-0410-b5e6-96231b3b80d8
|