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/hppa/Ginit.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/hppa/Ginit.c
|
cdf9ee587b78148c5d48dae1b5ea72ec8df64c96 |
|
23-Nov-2013 |
Christopher Ferris <cferris@google.com> |
Only check the map for local unwinds. Change-Id: I7b7eed29a1b7ddad8e0d852598260809d3eb98d1
/external/libunwind/src/hppa/Ginit.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/hppa/Ginit.c
|
e6b9f350f78ecd9ef3b8a3e721f9435c94fc2562 |
|
22-Aug-2007 |
David Mosberger-Tang <davidm@panda.mostang.com> |
Introduce a tdep_get_func_addr_hook() in the ELF lookup_symbol() routine and add address-space argument. This is needed because on PPC64, a the function-name symbol refers to a function descriptor (unlike, for example, on ia64, where the @fptr() operator is needed to refer to a function descriptor). Thus, in order to look up the name of a function, we need to dereference the function descriptor. To make matters more "interesting", the function descriptors are normally resolved by the dynamic linker, so we can't get their values from the ELF file. Instead, we have to read them from the running image, hence the need for the address-space argument.
/external/libunwind/src/hppa/Ginit.c
|
68edb681d88e33715e3337027c9b416d9dee4a61 |
|
03-May-2005 |
hp.com!davidm <hp.com!davidm> |
(uc_addr): Adjust for Debian/sarge header-file changes. (access_reg): Adjust & enable sanity-check. (acces_fpreg): Provide minimal implementation. 2004/12/02 00:40:45-08:00 mostang.com!davidm (uc_addr): Implement it so it starts to be useful. (_Uhppa_uc_addr): Rename from _Ux86_uc_addr. (get_static_proc_name): New function. (hppa_local_addr_space_init): Rename from x86_local_addr_space_init(). Use dwarf_find_proc_info, hppa_local_resume, and get_static_proc_name callbacks. (Logical change 1.290)
/external/libunwind/src/hppa/Ginit.c
|
3eb5704c20acb444c4c15c754b8cecc41835dc55 |
|
17-Aug-2004 |
homeip.net!davidm <homeip.net!davidm> |
Rename: src/hppa/Ginit-hppa.c -> src/hppa/Ginit.c (Logical change 1.241)
/external/libunwind/src/hppa/Ginit.c
|
3f9d2e9c5c1cfde324c08204259b65f74b2746a1 |
|
17-Aug-2004 |
homeip.net!davidm <homeip.net!davidm> |
Initial revision
/external/libunwind/src/hppa/Ginit.c
|