• Home
  • History
  • Annotate
  • only in /external/libunwind/src/aarch64/
History log of /external/libunwind/src/aarch64/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
23c6aa9a54d0a220fb2557197c555b2684c93876 27-Oct-2014 Christopher Ferris <cferris@google.com> Fix aarch64 handling of error code.

In the is_signal_frame call, there is an error return path that can
return a non-zero value. Unfortunately, only zero is considered an
error, so this causes the frame to be handled incorrectly.

Once this was fixed, I also modified the code so that if the treating
the unwind as in a signal frame fails, we can fall back and try a couple
of different paths.

It turns out this is_signal_frame check was broken on arm too.

Bug: 18100846

Change-Id: I519aea7594352be60df665457eb2986ab4f0f513
is_signal_frame.c
step.c
1e549bb0cef88f170cbbbd273212f45cf8f9af43 17-Sep-2014 Elliott Hughes <enh@google.com> Correctly identify the aarch64 kernel's signal trampoline.

This was misfiring because it was seeing a "corrected" PC that pointed
to the nop before the mov that's the first instruction in the trampoline.

Bug: 17436734

(cherry picked from commit 6d90028ee35b7028004e5a4f39ffa55dd0fbd6de)

Change-Id: I86abd5c49668e3f6694837b9a780d537c4c7a2f1
is_signal_frame.c
60c0e104182996ce3739e3377d1f8f3f706853ca 09-Jun-2014 Christopher Ferris <cferris@google.com> Fix ip adjust on aarch64.

I didn't add the ip adjust when aarch64 support was added. This meant that
the ip pointed to the wrong instruction when doing unwinds.

Change-Id: Ie60322b1bd0f4dae95852cc93d163b850595b0b5
step.c
a3112726a13e9b4694821314a4cbbd742764c817 04-Apr-2014 Christopher Ferris <cferris@google.com> Fix aarch64 map_local_is_* calls.

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

Change-Id: Idbb112a438a5c59a0fef2949abb07a48c96e0e94
init.c
f4a8df5f4f338f1a12c25213227e98b34b42447f 08-Mar-2014 Christopher Ferris <cferris@google.com> 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
init.c
init_local.c
1df3245fb2c4d437e930e226331e02e218451db4 27-Feb-2014 Christopher Ferris <cferris@google.com> 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>
init.c
0996405de25a3aab5045d20803c8f0a5441d0c57 01-Feb-2014 Christopher Ferris <cferris@google.com> Fix memory corruption bug.

There are two problems, some of the init code needs the map created before
the init function since it does a verify check during init. The second
problem is that the local addr space seems to change for reasons I don't
understand, so it's necessary to init the map list when doing a unw_cursor
init.

Bug: 12852152

Change-Id: I32246d7c5adf7e24192868cb32a8c2fdc53c12f0
init_local.c
16b95a68caaa7e021209e2cd6a877ae1e558f740 23-Jan-2014 Christopher Ferris <cferris@google.com> Add speed-ups to libunwind.

Add caching of /proc/self/maps data structures.

Add caching of elf image maps attached to the maps data structure.

Add a set of new map api functions to handle creation/destruction of the
maps by external code.

Remove the creation of the maps data structure in the local address space
init.

Change-Id: I0adae397d433fc3902f83a6f377f6889161937e5
init.c
cdf9ee587b78148c5d48dae1b5ea72ec8df64c96 23-Nov-2013 Christopher Ferris <cferris@google.com> Only check the map for local unwinds.

Change-Id: I7b7eed29a1b7ddad8e0d852598260809d3eb98d1
init.c
7d46a21e0a2cb561e4cad57b101a7137e01023dc 14-Nov-2013 Christopher Ferris <cferris@google.com> For current process, check memory accesses.

When attempting to unwind the current process, the library simple reads and
writes to memory for memory accesses. Unfortunately, if an unwind winds up
with invalid data, then the process can segfault. Add a guard to all memory
accesses that verifies that reads/writes are valid before attempting them.

For now, this guard is a nop on all systems except linux systems.

Also, modify the adjust_ip function to use the access_mem function
so that all reads go through the right function.

Bug: 11652982
Change-Id: I9d1feacae585374f6bf1d899f8a006ec9ecb47c4
init.c
efb75a0b84fed700173700a2e4fee153ba491b32 01-Oct-2013 Christopher Ferris <cferris@google.com> Update external/libunwind to build in android.

Bug: 8410085

Change-Id: Ideb46602d1e1cf2df5f858ef11d498055c02b969
nit.h
ac6c0a6535975f1dc2da6e4e2766614baac2a14a 11-May-2013 Yvan Roux <yvan.roux@linaro.org> [PATCH] AArch64 port.
create_addr_space.c
get_proc_info.c
get_save_loc.c
global.c
init.c
init_local.c
init_remote.c
is_signal_frame.c
regs.c
resume.c
step.c
create_addr_space.c
get_proc_info.c
get_save_loc.c
global.c
init.c
init_local.c
init_remote.c
is_signal_frame.c
regs.c
resume.c
step.c
en-offsets.c
nit.h
s_fpreg.c
ffsets.h
egname.c
iglongjmp.S
nwind_i.h