History log of /external/libunwind/src/ptrace/_UPT_find_proc_info.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
1aaf3b45edb306600589f5a3969d7a7004798823 10-Feb-2016 Christopher Ferris <cferris@google.com> Make sure that elf_image structure is copied.

A previous change modified the code so that a pointer to the elf_image
structure from the map data was returned instead of copied. This can
cause a race condition when doing local unwinds if the map needs to be
rebuilt. One thread might have a pointer to a freed data structure.

To fix this, make sure that the elf_image is always copied when the
contents are going to be used.

In addition, remove the map pointer in the mapped data because it could
also be stale when a local unwind causes a map rebuild. Add a big comment
in front of the elf_image structure to explain this so it won't happen
again.

Bug: 27123610

(cherry picked from commit 2c0f916cac65c1a14e9a917452a430c490ff9620)

Change-Id: I162b396c24923fe9e3d774488b221244d822096c
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
06e604a3cc470460af1ff7a179ccc7e51bd98072 02-Feb-2016 David Srbecky <dsrbecky@google.com> Cache decompressed .gnu_debugdata sections.

Change-Id: Ia7260642e7567acb72b1cce38016ce063acbf521
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
4a9fd609328bb843b31d96bd8b3041eff4538ca6 19-Aug-2015 Nicolas Geoffray <ngeoffray@google.com> Revert "Update all mapoff checks to check against 0."

Makes ART's cfi-test fail.

This reverts commit 4a4ba40ed815be9307ac64023565d5b22c7fdf39.

Change-Id: I0698a2e37f9fe0a54695a7a8f99c4e23b2478f47
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
4a4ba40ed815be9307ac64023565d5b22c7fdf39 14-Aug-2015 Christopher Ferris <cferris@google.com> Update all mapoff checks to check against 0.

The dlopen of a shared library from an apk results in huge non-zero
map offsets. This can cause failures due to the checks in the code
of the map offset against the elf data.

We don't really support a non-zero offset for an executable map,
so it's easier to assume this is always zero.

Bug: 23192251
Change-Id: Ie4c34ed5c181135ecd3fe7c968b4a424f8eb34b9
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
ae38b20031a02d3f6f56a8315c1f097ae5293c56 04-May-2015 Christopher Ferris <cferris@google.com> Implement method to read elf data from memory.

I rewrote the entirety of elfxx.h/elfxx.c to support this.

For the rewrite, I modified the way that the symbol tables are searched.
The searched every single entry in the symbol table, and all symbol tables.
The new method finds the first entry that actually has a name and stops.

I also added some quick checks to make sure that a malformed elf would
not cause a crash when reading the symbol names from the symbol tables.

I had to implement the functionality of dwarf_find_unwind_table to handle
reading from memory, instead of from a file. I didn't implement debug frame
support since that likelihood of that appearing in memory seems low.

I also modified the dwarf_find_unwind_table to remove an abort and just
fail if that particular path is encountered. In addition, I added a quick
check to make sure that a malformed dynamic section doesn't cause a crash.

Bug: 19517541

Change-Id: I6075d87035dca41fa5e5dfcbe287a680a7671836
/external/libunwind/src/ptrace/_UPT_find_proc_info.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
/external/libunwind/src/ptrace/_UPT_find_proc_info.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
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
cc6cc088ba4077f5b6cfa3931a1737b03fc0446e 16-Oct-2013 Christopher Ferris <cferris@google.com> Add a new option to conserve stack space.

There are a few places where large data structures are put on the stack.
This causes failures when trying to dump threads using a smaller stack so
use an option to conserve stack space.

Tested by running these commands:

autoreconf -i
./configure

Verify that config.h has CONSERVE_STACK undefined since this is a host build.

autoreconf -i
android/conf_arm.sh

Verify that config.h has CONSERVE_STACK defined.

Built libunwind with both CONSERVE_STACK define and undefined.

Bug: 8410085
Change-Id: I9ec4dee656475650883176d8801430b7e312153c
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
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>
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
fa5409387c10b547576e0bf581e8905c6b574eeb 24-May-2012 Arun Sharma <asharma@fb.com> Merge branch 'coredump2' of https://github.com/adsharma/libunwind

Conflicts:
src/ptrace/_UPT_find_proc_info.c
cbc66b62c085c369c8506da12f7dc5014baabfc8 10-Apr-2012 Arun Sharma <asharma@fb.com> mips: fix a linker error

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
6525714c270c6521389b657793bd7147eeffa4f0 13-Mar-2012 Arun Sharma <asharma@fb.com> Move some dwarf functionality from ptrace to dwarf

Move ptrace-independent code from src/ptrace/_UPT_find_proc_info.c
to src/dwarf/{G,L}find_unwind_table.c. Name this moved function
dwarf_find_unwind_table().

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
25ee9f81727616f3269032c52483e4421d451291 13-Mar-2012 Arun Sharma <asharma@fb.com> Introduce struct elf_dyn_info

This is a common part of struct UPT_info
and struct UCD_info (to be introduced later).
Make _UPTi_find_unwind_table function operate only on this part
of struct UPT_info.

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
059676cb00cfdd3be17dfdeb25547037737f1b68 20-Oct-2011 Ken Werner <ken.werner@linaro.org> Prevent the use of struct dl_phdr_info outside of dl_iterate_phdr

Since the dl_iterate_phdr is required for local unwinding only the use of
struct dl_phdr_info can be eliminated in case libunwind gets compiled for
remote unwinding. This enhances libunwinds portability to targets that
don't provide any dl_iterate_phdr functionality.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
197571915c70b9ccd0978c13f12acb2a5f3058d4 11-Oct-2011 Ken Werner <ken.werner@linaro.org> Change _UPTi_find_unwind_table to return an integer.

This keeps the definition on IA64 and all the other architectures in sync with
the declaration of _UPTi_find_unwind_table. This also mimics the behaviour of
what's done for local unwinding and allows the function to provide more than
one way to undwind.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
/external/libunwind/src/ptrace/_UPT_find_proc_info.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/ptrace/_UPT_find_proc_info.c
b317cb48296ca3837b403782c317f6214a54a7fa 20-Jul-2011 Ken Werner <ken.werner@linaro.org> Change libunwind-ptrace to also look for .debug_frame if nothing found in .eh_frame.

This changes the behavior of libunwind-ptrace to what we do for local
unwinding.

Signed-off-by: Ken Werner <ken.werner@linaro.org>
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
b3757e7792fdd92b49e2c8936e384009add4fee3 29-May-2010 Konstantin Belousov <kostik@pooma.home> Restore the linking when --enable-debug-frame is not specified
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
46e10c5abeeb93345367a70db2af3aba4440a49e 27-May-2010 Arun Sharma <arun@sharma-home.net> Support .debug_frame based unwinding in _UPTi_find_unwind_table()

Signed-off-by: Andris Zeila <andris.zeila@accenture.com>
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
8ee7b1762ed76957a86d6c84a1d34ee49eda37a3 15-May-2010 Arun Sharma <arun@sharma-home.net> Add ip argument to _UPTi_find_unwind_table.

Signed-off-by: Andris Zeila <andris.zeila@accenture.com>
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
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>
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
a67654e86f915051e6a3f1220facfb3619ffb837 14-Apr-2010 Giuseppe Scrivano <gscrivano@gnu.org> [PATCH] Reduce scope of the eh_frame_end local variable
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
9f79621a298719b22744f6637269f0d4ef314c39 08-Mar-2010 Konstantin Belousov <kostik@pooma.home> Enough for now for ptrace backend
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
752ce15c4fbe0e08c2d19df18caa86887732b3c8 08-Mar-2010 Konstantin Belousov <kostik@pooma.home> Preliminary version of freebsd syscall unwinder
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
6aec15799d0572a484065aed3d97317df0702b17 13-Apr-2009 Arun Sharma <aruns@google.com> Fix ppc32 build.

Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
1eddefc371c80012e0299eec78805dedfed89a89 21-Apr-2008 Bruna Moreira <bruna.moreira@openbossa.org> [ARM] This patch add some missing bits on ARM platform.

* src/arm/unwind_i (arm_lock, arm_local_resume): Define.
* src/ptrace/_UPT_find_proc_info.c: Handle ARM like X86 etc.
* tests/flush-cache.S (flush_cache): Add (dummy) ARM-version.
ARM does need executable stack, even on Linux...

Signed-off-by: Anderson Lizardo <anderson.lizardo@indt.org.br>
Signed-off-by: Bruna Moreira <bruna.moreira@indt.org.br>
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
32e2187fab8d7a0adaa099b7bdaefca50628de88 27-Aug-2007 Jose Flavio Aguilar Paulino <jflavio@br.ibm.com> [PPC64] Get "make check" to work on PPC64 Linux. Add a README entry
describing the expected results.
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
8c94e12429e49bf1db61e75909fd55bffe572404 26-Jul-2006 David Mosberger-Tang <davidm@koala.localdomain> (_UPT_find_proc_info): Fix potential crash due to uninitialized pointer.

Be sure to clear pi->unwind_info when looking up the kernel table and
not needing the unwind-info. Otherwise, _UPT_put_unwind_info() may
erroneously call free() on the pointer, even though that space wasn't
malloc'd, leading to crashes..
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
10a269d6d0b3f5b01688606a72c29cacf098b74a 03-May-2005 mostang.com!davidm <mostang.com!davidm> Also enable DWARF code for UNW_TARGET_HPPA.

2004/11/23 16:59:56-08:00 mostang.com!davidm
(_UPTi_find_unwind_table): Implement first draft for x86/-64.

(Logical change 1.290)
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
99784e02d3e228a94f598e71d3b8519e20faa1f1 20-Aug-2004 homeip.net!davidm <homeip.net!davidm> (_UPTi_find_unwind_table): Provide dummy x86-64 implementation so
"make check" can be run.

(Logical change 1.253)
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
26465f4a7ddbe7a219e27d6348a91282ad22441d 30-Jan-2004 hp.com!davidm <hp.com!davidm> Update.

2004/01/27 21:49:09-08:00 hp.com!davidm
Rename: src/_UPT_find_proc_info.c -> src/ptrace/_UPT_find_proc_info.c

(Logical change 1.162)
/external/libunwind/src/ptrace/_UPT_find_proc_info.c
b88369b8314dc8e8fe617184b07527fb34b66f22 30-Jan-2004 hp.com!davidm <hp.com!davidm> Initial revision
/external/libunwind/src/ptrace/_UPT_find_proc_info.c