Improve logging of aborts for Android.

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 3ac101d77e00b8831bb36f4929a516cb4c480f03)
Fix _Unwind_Backtrace for arm.

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

(cherry picked from commit 34ce4a6f5c6ffab0fb97be2b62f8e71b14df8fb4)

Change-Id: Ic285e4885f6420584363d1bf4169227c07c05bb9
Remove test code.

I accidentally included some test code that I if'd 0 out. Remove it.

Bug: 16874447

(cherry picked from commit e3f00968e6c7819bd616c413f4f22b87099236a7)

Change-Id: If6428c55e84d3e707f6ef6e9ace12be251410d69
Revert "Fix _Unwind_Backtrace for arm."

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
Make _Unwind_Backtrace() work on ARM.

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
Add missing include to a test case.

Some platforms get size_t defined transitively by another include, but
Android does not.

git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@216738 91177308-0d34-0410-b5e6-96231b3b80d8

(cherry picked from commit a3a836ae5bcd30a63029a5877558f2765b64c8b1)
Change-Id: Ib90bd29246f4dc04abc594b03910d38919ffb43f