• Home
  • History
  • Annotate
  • only in /external/libunwind/include/tdep-arm/
History log of /external/libunwind/include/tdep-arm/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f622936d6c5239b3d5ccafdf38189cec8bca55c0 15-Apr-2014 Christopher Ferris <cferris@google.com> 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
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
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

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

Bug: 8410085

Change-Id: Ideb46602d1e1cf2df5f858ef11d498055c02b969
5d0f376b08126b51a001d7cdfba1ec4e0d644f54 21-Sep-2012 Tommi Rantala <tt.rantala@gmail.com> Invert tdep_init() flag logic

Invert the flag that signals that tdep_init() was called, to move the
symbol from data to BSS.
1dc66bd1817e5664326f468ed0b56eb3a24d1ccd 07-Aug-2012 Tommi Rantala <tt.rantala@gmail.com> ARM: implement dwarf_to_unw_regnum() macro without table
d93d96ad833390519ea68a2df22dd55dd26a3214 22-May-2012 Martin Milata <mmilata@redhat.com> Fix compilation on IA64

- Add tdep macro for {dwarf,ia64}_find_unwind_table so that ia64
doesn't try to use dwarf code.
- Fix extraneous #if.
- Fix mistyped filename in Makefile.am.
- Link ia64-specific tests with correct libraries.

Signed-off-by: Martin Milata <mmilata@redhat.com>
0eba2169fb19ef0707a2c96201e33769001b5f11 25-Oct-2011 Ken Werner <ken.werner@linaro.org> [ARM] Add support for systems that don't support ucontext.h

Define unw_tdep_context rather than using ucontext_t in order to support
systems that lack ucontext.h. Note that POSIX.1-2008 removed getcontext,
makecontext and swapcontext from its specification.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
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

Signed-off-by: Ken Werner <ken.werner@linaro.org>
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>
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>
264b101905c53993fd1294cca821cd01fb17e1c8 03-Jul-2011 Ken Werner <ken.werner@linaro.org> Move arm_exidx_entry and arm_exidx_table structs from ex_tables.h into libunwind-arm.h.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
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>
e2962af9d31266761700b431da894421c0d757ec 06-Apr-2011 Arun Sharma <asharma@fb.com> Implement a cheaper getcontext()

Since the fast unwinding code path doesn't need the full context,
a faster target dependent getcontext is implemented.

Signed-off-by: Lassi Tuura <lat@cern.ch>
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>
5f38f35d5d6c78aafa6da20845d9ceff74af00f8 01-Apr-2011 Lassi Tuura <lat@cern.ch> Drop a call frame in tdep_trace and avoid a call to unw_step.

Dropping the extra frame for unw_backtrace itself using unw_step is
approximately 15% slower than skipping the frame in tdep_trace. So
drop the frame in the latter, and make the function a private
implementation detail for libunwind, not an exported interface.

Also moves unw_getcontext call back into unw_backtrace to avoid an
extra call frame in case slow_backtrace does not get inlined into
9e98f15e9aee12e67cd5956d06ccb559f6a06213 19-Mar-2011 Lassi Tuura <lat@iki.fi> Fast back-trace for x86_64 for only collecting the call stack.

Adds new function to perform a pure stack walk without unwinding,
functionally similar to backtrace() but accelerated by an address
attribute cache the caller maintains across calls.
f053677198a54bf4fb2931f45f52fcc5d32f4360 23-Mar-2011 Ken Werner <ken.werner@linaro.org> Remove the ARM_EXIDX_TABLE_MALLOC code path.

Using malloc is not an option since unw_init_local and unw_step are supposed
to be async signal safe. Therefore this code path can be removed.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
6296ff1fb2cf8753128d35b57cabecd2faea4f88 23-Mar-2011 Ken Werner <ken.werner@linaro.org> Remove the appname string of the ARM extbl parser.

There is no need for libunwind to set/fake a name of the elf file from which
the program header came from.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
fb325c895e45052367f0a2ab04c107ca20f40a41 23-Mar-2011 Ken Werner <ken.werner@linaro.org> ARM extbl cleanup.

Move code that does not necessarily need to reside in the ex_tables.h header
file into ex_tables.c. Add comments and remove unused code.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
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>
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>
ffc474b8c8972200642acaef3e5aa10ee853609a 15-Mar-2011 Zachary T Welch <zwelch@codesourcery.com> Add module for parsing ARM-specific unwind tables

Handles lookup, extracting unwind entries, and decoding the entry
using a callback mechanism.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
ec633a1911e365ba6016fa9fcbd81cad72f7afdb 02-Mar-2011 Ken Werner <ken.werner@linaro.org> Use UNW_OBJ instead of UNWI_ARCH_OBJ to rename unwi_unwind_method on ARM.

This results in different unwi_unwind_method symbol names for the local and
generic versions. It allows to statically link against both libraries.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
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>
1787a2fd284a786b409af74047a12de02c644cd1 15-May-2010 Arun Sharma <arun@sharma-home.net> Add path and pathlen arguments to tdep_get_elf_image()

Signed-off-by: Andris Zeila <andris.zeila@accenture.com>
dac2d001afb1fa7040ca7d8ae57032f684d7023e 20-Apr-2010 Lassi Tuura <lat@cern.ch> Identify signal frames by augmentation attribute.
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).