AARCH64: Change Debug calls to use %lx instead of %x.

The attached patch simply modifies the Debug statements for aarch64 to use
%lx instead of %x. Tested by compiling for aarch64 using a cross-compiler.

Change-Id: I1f05ed759cef2ff4704c955752f0c19fc22dbb40
Signed-off-by: Christopher Ferris <cferris@google.com>
AArch64: Port to Android

Bionic doesn't support getcontext(), work around that.

Change-Id: Iab6e5a5ec99716c54a69dbc2b227fbbf9408fb47
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
Modify the x86 step cut off.

The current cut off stops if the ip of the current step matches the
previous step. This cuts off recursive functions improperly, so change
it to stop when cfa and ip are the same as the previous frame.

Change-Id: I0be6ed8694d7d4aabc2087bd700310c907f5c047
Merge "Modify the x86 step cut off."
Fix symbol name association.

Do not associate a name with an ip unless the ip is actually within
the symbol's size.

Change-Id: I7ec424abdd9a21ca94b37fa30302b355b64b6312
Fix maps caching for local processes.

It is possible for the map to change while running libunwind. For example,
if lots of threads are doing local unwinds at the same time. Allow the
cached map to regenerate when it detects this case.

Included in this change is a refactor of all of the os code so that it can
also be used to do caching. This is a prelude to being able to attempt to
push the code upstream.

Also, this moves the code back closer to the original upstream code.
Hopefully, this will allow me to upstream all of these changes.

Change-Id: Ia219fa61e16e36416133bc95b1dd2161bd5b8ff7
Fix aarch64 map_local_is_* calls.

Also fix one formatting issue in ia64/Ginit.c.

Change-Id: Idbb112a438a5c59a0fef2949abb07a48c96e0e94
Fix typo in prototype.

Bug: 13816562
Change-Id: Iff1005e6f2b8b13506fc4096a78e3dce3b5847c0
Fix local_get_elf_image prototype.

Change-Id: I3fb0de34ac0447e25b0c0368f76044b4bfc834ba
Fix return code for unmappable elf data.

If an elf image cannot be mapped for the local unwind, then uninitialized data
gets passed back. Fix this to actually return an error code.

Bug: 13897127
Change-Id: I31b66491bbc7d8b7ad99d50d04a33ca1d886a0f7
Use map cache for finding image names.

This change removes the function find_binary_for_address and replaces it
with a call to check the cached map data instead. This is an error path
that hardly ever gets exercised though.

Also fix a couple of warnings in Gfind_proc_info-lsb.c.

Change-Id: Idb501d6674cacfc693fc35608d322ec78f48a4d6
Fix all warnings, and make warnings errors.

Change-Id: Ia2039922b55891551b1de0f0c281c266db6ee219
Make sure that all memory accesses are guarded.

This doesn't protect the fpreg reads completely. It's still possible to have
a bad address that has the first part in readable memory and the second part
in unreadable memory. Since none of the code android uses uses the fpreg
data, this should be okay.

Bug: 13946101

Change-Id: I9187b16d0427cbc8af6751cf0b8476ea2d1bfc38
Add aarch64 getcontext functionality.

Change-Id: I32912a85c0fd02bb5e45a9eb7deb2410ded352a9