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/include/tdep-x86_64/libunwind_i.h
|
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/include/tdep-x86_64/libunwind_i.h
|
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/include/tdep-x86_64/libunwind_i.h
|
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.
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
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/include/tdep-x86_64/libunwind_i.h
|
ae5c1f2adf4da04235d87d024d4d942c01b2b447 |
|
18-Apr-2011 |
Lassi Tuura <lat@cern.ch> |
Performance optimisations for fast trace. Insert static branch prediction predicates in useful places and avoid unnecessary code in the hottest paths. Bypass unnecessary indirect calls, in particular to access_mem(), when known to be safe.
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
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>
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
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 unw_backtrace.
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
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.
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
28f33c8ce0b654cf31d6beda9a612870662f3c56 |
|
22-Mar-2011 |
Lassi Tuura <lat@cern.ch> |
Auto-detect whether to use msync() or mincore() for address validation.
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
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/include/tdep-x86_64/libunwind_i.h
|
dac2d001afb1fa7040ca7d8ae57032f684d7023e |
|
20-Apr-2010 |
Lassi Tuura <lat@cern.ch> |
Identify signal frames by augmentation attribute.
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
752ce15c4fbe0e08c2d19df18caa86887732b3c8 |
|
08-Mar-2010 |
Konstantin Belousov <kostik@pooma.home> |
Preliminary version of freebsd syscall unwinder
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
c64723835c0c855fde5bec3d7528db64fe539015 |
|
07-Mar-2010 |
Konstantin Belousov <kostik@pooma.home> |
Support walk over freebsd sigframes
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
649f1fb3449a65dd0626a709432d8b02a7c56bbc |
|
16-Jun-2008 |
Arun Sharma <arun.sharma@google.com> |
[X86-64] For local unwinding, we have a defence mechanism against bad/missing unwind information, which could result in libunwind dereferencing bad pointers. This mechanism is based on msync(2) system call and significantly reduces the chances of a bad pointer dereference in libunwind. The original idea was to turn this mechanism on only when necessary i.e. libunwind didn't find proper unwind information for a IP. There are a couple of problems in the current implementation. * The flag is global and is modified without locking * The flag isn't reset when starting a new unwind The attached patch makes ->validate a per-thread setting by moving it into struct cursor from unw_local_addr_space and resets it to false when starting a new unwind. As a result, cursor->as_arg points to the cursor itself instead of the ucontext (for the local case). This was found to reduce the number of msync() system calls from an application using libunwind significantly. Signed-off-by: Paul Pluzhnikov <ppluzhnikov@google.com> Signed-off-by: Arun Sharma <arun.sharma@google.com>
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
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/include/tdep-x86_64/libunwind_i.h
|
795529eee394ce1c0c80ee364217cdd679e5eda3 |
|
03-Aug-2006 |
Arun Sharma (अरुण) <arun.sharma@google.com> |
[x86-64] Add a known good address cache. This improves the performance of Lperf-simple from 500ns to 195ns on the avg. Signed-off-by: Arun Sharma <arun.sharma@google.com>
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
1fdb08e5fc427b54b54214e3b3fbdda73d369f4d |
|
27-Jul-2006 |
David Mosberger-Tang <davidm@koala.localdomain> |
Various fixes to get x86 to compile and work again. include/dwarf.h: Declare dwarf_reg_state_pool and dwarf_cie_info_pool. include/dwarf_i.h: Include libunwind_i.h instead of tdep.h. Make dwarf_to_unw_regnum() a macro so it doesn't get compiled into an object file merely because it include dwarf_i.h (important when optimization is turned off). (dwarf_read_encoded_pointer_inlined): New function. include/tdep-x86/libunwind_i.h: Add include of "mempool.h". include/tdep-x86_64/libunwind_i.h: Add include of "mempool.h".
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
8cdd8bfed8f21bb632faf69cca023c9762d78ab1 |
|
27-Jul-2006 |
Arun Sharma <aruns@sharma.corp.google.com> |
[x86-64] Make even UNW_LOCAL_ONLY accessors go through validation. Signed-off-by: Arun Sharma <arun.sharma@google.com>
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
00db7f752ac26c5aab6b4ca03531a2c3e212b135 |
|
27-Jul-2006 |
Arun Sharma <aruns@sharma.corp.google.com> |
Implement a ip -> dwarf_reg_state cache. Signed-off-by: Arun Sharma <arun.sharma@google.com>
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
37be21c01ebe23402d4b5f1391e7a83da34e8c32 |
|
26-Jul-2006 |
David Mosberger-Tang <davidm@koala.localdomain> |
Restore more files wiped out by Bitkeeper->CVS->GIT transition.
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
180a1ececa292bf92cf665ab6253fb68727d576a |
|
20-May-2005 |
hp.com!davidm <hp.com!davidm> |
Initial revision
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|
bea50a5d413b31418dba16c9a2a28e31e0459468 |
|
20-May-2005 |
hp.com!davidm <hp.com!davidm> |
Adjust for renaming of file. (tdep_put_unwind_info): Adjust for change of arguments. 2005/05/19 07:42:45-07:00 hp.com!davidm Rename: include/tdep-x86_64.h -> include/tdep-x86_64/libunwind_i.h (Logical change 1.294)
/external/libunwind/include/tdep-x86_64/libunwind_i.h
|