History log of /external/libunwind/src/arm/Gstep.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2706ca232c0966b508003043f6a327ac8461e920 09-May-2015 Christopher Ferris <cferris@google.com> Add check for same ip/cfa.

Make sure that all of our supported architectures stop when the ip/cfa
does not change.

Bug: 20955299
Change-Id: Ic023c71439208ee5ef21efa0298ab7ed1ad03c00
/external/libunwind/src/arm/Gstep.c
7e10fa72f0d9e6160b917a62d9d91a87c9b47ffb 22-May-2014 Elliott Hughes <enh@google.com> Fix building libunwind with debug := true.

Change-Id: I1d72e942f6d28c34e08cdef133111307670bef2c
/external/libunwind/src/arm/Gstep.c
d1c383c5bb03420decf5cf789cf14ab144b0720d 10-Apr-2014 Christopher Ferris <cferris@google.com> Fix all warnings, and make warnings errors.

Change-Id: Ia2039922b55891551b1de0f0c281c266db6ee219
/external/libunwind/src/arm/Gstep.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
/external/libunwind/src/arm/Gstep.c
efb75a0b84fed700173700a2e4fee153ba491b32 01-Oct-2013 Christopher Ferris <cferris@google.com> Update external/libunwind to build in android.

Bug: 8410085

Change-Id: Ideb46602d1e1cf2df5f858ef11d498055c02b969
/external/libunwind/src/arm/Gstep.c
2aea391d6a575636c435e0dc3d0f8d73ad546c62 31-Aug-2012 Tommi Rantala <tt.rantala@gmail.com> ARM: invalidate proc info after non-dwarf unw_step()

After successfully stepping the cursor on ARM, the proc info is
invalidated only in dwarf_step(). Invalidate the proc info also when
stepping with the non-dwarf based methods. This fixes
unw_get_proc_info() returning stale data.

The core dump unwinder can be used for demonstrating the bug. When
unwinding based only on DWARF data, the proc info is correct:

$ UNW_ARM_UNWIND_METHOD=1 ./test-coredump-unwind core `cat backing_files` 2>/dev/null
ip=0x000086d8 proc=000086d4-000086dc handler=0x00000000 lsda=0x00000000
ip=0x000086ef proc=000086dc-000086f2 handler=0x00000000 lsda=0x00000000
ip=0x000086e7 proc=000086dc-000086f2 handler=0x00000000 lsda=0x00000000
ip=0x00008597 proc=00008584-0000859a handler=0x00000000 lsda=0x00000000
ip=0x76e3ac3b proc=76e3aba0-76e3acec handler=0x00000000 lsda=0x00000000

When unwinding based only on the exidx method, we see the proc info
lagging behind:

$ UNW_ARM_UNWIND_METHOD=4 ./test-coredump-unwind core `cat backing_files` 2>/dev/null
ip=0x000086d8 proc=000086d4-000086db handler=0x00000000 lsda=0x00000000
ip=0x000086ef proc=000086d4-000086db handler=0x00000000 lsda=0x00000000
ip=0x000086e7 proc=000086dc-000086f3 handler=0x00000000 lsda=0x00000000
ip=0x00008597 proc=000086dc-000086f3 handler=0x00000000 lsda=0x00000000
ip=0x76e3ac3b proc=00008584-0000859b handler=0x00000000 lsda=0x00000000
ip=0x000085c3 proc=76e3aba0-76e3ae4b handler=0x00000000 lsda=0x00000000

Finally, with this patch applied, we get the desired proc info also with
the exidx unwinder:

$ UNW_ARM_UNWIND_METHOD=4 ./test-coredump-unwind core `cat backing_files` 2>/dev/null
ip=0x000086d8 proc=000086d4-000086db handler=0x00000000 lsda=0x00000000
ip=0x000086ef proc=000086dc-000086f3 handler=0x00000000 lsda=0x00000000
ip=0x000086e7 proc=000086dc-000086f3 handler=0x00000000 lsda=0x00000000
ip=0x00008597 proc=00008584-0000859b handler=0x00000000 lsda=0x00000000
ip=0x76e3ac3b proc=76e3aba0-76e3ae4b handler=0x00000000 lsda=0x00000000
ip=0x000085c3 proc=0000859c-00008613 handler=0x00000000 lsda=0x00000000
/external/libunwind/src/arm/Gstep.c
5738bac1717a0b315c5181400a3de1873e012df7 10-Aug-2012 Tommi Rantala <tt.rantala@gmail.com> ARM: fix with-signal-frame local unw_resume()

Make sure that the `sigcontext_addr' cursor member is pointing to the
`struct sigcontext' as expected in arm_local_resume().
/external/libunwind/src/arm/Gstep.c
d84e5d5d2485b7c37bdf31794c77ed000f34faf5 18-Nov-2011 Ken Werner <ken.werner@linaro.org> Call dwarf_step only if CONFIG_DEBUG_FRAME is defined

The ARM EABI does not use the .eh_frame and .eh_frame_hdr sections for unwinding. Therefore it doesn't make sense to call dwarf_step if CONFIG_DEBUG_FRAME is not defined.
/external/libunwind/src/arm/Gstep.c
912db91b053a86092515caff4ed8e2447864c8cb 29-Aug-2011 Ken Werner <ken.werner@linaro.org> ARM: Exit unw_step in case DWARF based unwinding was successful

Prevents unw_step from trying to unwind the stack using the ARM specific
unwind tables in case the DWARF based unwinding was successful.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
/external/libunwind/src/arm/Gstep.c
112c927371b8253040a38da697372a3fd67ad520 17-Aug-2011 Ken Werner <ken.werner@linaro.org> ARM: Ensure unw_step returns whatever find_proc_info() returns

This allows the test-proc-info test case to pass on ARM.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
/external/libunwind/src/arm/Gstep.c
d83846f120596ea60f74816947deceb93d0a8944 20-Jul-2011 Ken Werner <ken.werner@linaro.org> ARM: Initial support for remote unwinding using libunwind-ptrace

Change _UPTi_find_unwind_table to also look for the ARM specific unwind
information. Adjust the ARM unwind code to read memory using the accessor
routines.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
/external/libunwind/src/arm/Gstep.c
545023c2072975c6b85a09d5faf2cf05db10e064 14-Jul-2011 Ken Werner <ken.werner@linaro.org> Rework the lookup of the ARM specific unwind info

Implement routines for finding the proc_info and searching the unwind table
for the ARM backend.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
/external/libunwind/src/arm/Gstep.c
25f6b8295d0427746e2a760bb17e63c0461e47f2 06-Jul-2011 Ken Werner <ken.werner@linaro.org> Change address type from void* to unw_word_t.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
/external/libunwind/src/arm/Gstep.c
36511d3d1f040bbf778094e907725ad0617326c8 21-Apr-2011 Ken Werner <ken.werner@linaro.org> Add support for handling signal frames on ARM Linux.

This patch add support for resuming at a certain stack frame even if signal
frames are involved. For restoring the registers the trampoline (sigreturn)
is used. RT and non-RT signal frames are handled for both >=2.6.18 and
<2.6.18 kernels.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
/external/libunwind/src/arm/Gstep.c
fd21d07fe422aacea422a8942ac2cc3f363f0fce 01-Apr-2011 Ken Werner <ken.werner@linaro.org> Create a generic and local variant of the extbl parser.

In order to have the DWARF_* macros working properly a generic and a local
variant of the ex_tables.c have been created.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
/external/libunwind/src/arm/Gstep.c
dcb8d0d90f74d8478c35ec5fee098e4348154818 23-Mar-2011 Ken Werner <ken.werner@linaro.org> Prefer to unwind using DWARF info on ARM.

DWARF expressions are more powerful than the ARM specific unwind tables.
Therefore DWARF should be the preferred unwind method.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
/external/libunwind/src/arm/Gstep.c
cf8d5e41af582b9070576889dcc479397a19bf48 23-Mar-2011 Ken Werner <ken.werner@linaro.org> Have the ARM extbtl-parser operate on the DWARF model directly.

This eliminates the arm_stackframe and therefore the need to synchronize the
two models. It also clears the way for unwinding call stacks with mixed
DWARF- and extbl-frames.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
/external/libunwind/src/arm/Gstep.c
6a671546741e8355dd9f821f171e4a3c895d28ec 15-Mar-2011 Zachary T Welch <zwelch@codesourcery.com> Use ARM-specific unwinding tables in unw_step

Uses ex_tables routines to provide a new means of unwinding the stack.
Set UNW_ARM_UNWIND_METHOD=4 to use ARM-specific unwinding tables.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
/external/libunwind/src/arm/Gstep.c
00aed9631b112d7aa7adc98054b62549cfc857da 27-May-2010 Arun Sharma <arun@sharma-home.net> Add an experimental and optional frame chain unwinding for ARM

The environment variable UNW_ARM_UNWIND_METHOD controls the unwind method.

1 - debug_frame unwinding
2 - frame chain unwinding,
3 - 1 & 2 (default))

Signed-off-by: Andris Zeila <andris.zeila@accenture.com>
/external/libunwind/src/arm/Gstep.c
3842dac7333e42aa44531eda34ba55200b99ccf8 05-Feb-2008 Daniel Jacobowitz <drow@false.org> Add initial ARM and MIPS support. To support this, also enable the
reading of .debug_frame sections (used in lieu of .eh_frame sections
when they're not available).
/external/libunwind/src/arm/Gstep.c