History log of /system/core/libbacktrace/BacktraceThread.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
db44538387b08f367fc2419653639866f4c2fbd6 09-Nov-2014 Christopher Ferris <cferris@google.com> Convert futex to cond wait.

Switch to the better supported pthread_cond to handle the Wait/Wake
functions.

Also, increase the number of simultaneous threads in the thread tests.

Bug: 18381207
Change-Id: I63240208e8b7f641b3f35a3fc0bb1acf80dc796e
/system/core/libbacktrace/BacktraceThread.h
e48460762273586744a79d146c2916bcfca7e9e4 23-May-2014 Christopher Ferris <cferris@google.com> Only copy mcontext data from sigcontext.

The ucontext_t data structure could be bigger than the kernel data
structure. Since the unwinder only cares about the mcontext data, only
copy that out of the structure. The mcontext data is the same size in
the kernel and in the ucontext_t structure.

Bug: 15189014
Change-Id: I5978169c4425b8212e11db85a57eb319cd0e264b
/system/core/libbacktrace/BacktraceThread.h
a2efd3ac7abe223aa7a8ba8b5ba448216c4953b4 07-May-2014 Christopher Ferris <cferris@google.com> Rewrite unwind thread handling.

This new version doesn't require any specialized thread
implementation, it uses the Current implementation to do its job.
In addition, it runs much faster when multiple threads are trying
to unwind at the same time since the global signal lock is held for
only a small amount of time. Even running through the threads one at
a time should be faster since it no longer requires two passes through
the unwound stacks.

The new code now allows multiple simultaneous unwinds of the
same thread.

Finally, add the ability to unwind from a ucontext_t passed in. This
functionality doesn't work for remote unwinds yet.

Change-Id: I4d181d7ca5ffd2acfd1686e668e6d21e36b425cb
/system/core/libbacktrace/BacktraceThread.h
aa63d9f980f95718fc28ca7e222c1e8d7ca9e778 29-Apr-2014 Christopher Ferris <cferris@google.com> Use real time signal for threads instead of SIGURG.

This guarantees that any application is not also using this signal
for some other purpose.

Change-Id: I7c9bbb0ec8bb4e13322ecda951bcd43c6bf6ee1a
/system/core/libbacktrace/BacktraceThread.h
df2906186b6952c57b1f662bfef0b65c9f8c2e0d 23-Jan-2014 Christopher Ferris <cferris@google.com> Re-enable libunwind for arm.

Update to handle the new optimized way that libunwind works.

In addition, a small refactor of the BacktraceMap code.

A few new tests of for good measure.

Change-Id: I2f9b4f5ad5a0dfe907b31febee76e4b9b94fb76f
/system/core/libbacktrace/BacktraceThread.h
46756821c4fe238f12a6e5ea18c356398f8d8795 15-Jan-2014 Christopher Ferris <cferris@google.com> Rewrite libbacktrace to be all C++.

This includes removing the map_info.c source and replacing it with the
BacktraceMap class to handle all map related code.

Change all callers of libbacktrace map functionality.

Also modify the corkscrew thread code so that it doesn't need to build
the map twice (once in the corkscrew format and once in the libbacktrace
format).

Change-Id: I32865a39f83a3dd6f958fc03c2759ba47d12382e
/system/core/libbacktrace/BacktraceThread.h
f67c6410d12a1829b0c6d009c848d72cd0158ee4 10-Jan-2014 Christopher Ferris <cferris@google.com> Create a bare bones host libbacktrace on mac.

This allows the libbacktrace library to compile for host on mac.

Bug: 12474939
Change-Id: I32cbcf996e6fe9057e5065ba21f89086343704a0
/system/core/libbacktrace/BacktraceThread.h
9846497f7926fc3240c2893d89e60880c22d1fd6 07-Jan-2014 Christopher Ferris <cferris@google.com> Refactor to share map_info amongst threads.

Allow the use of the same map info to be shared when getting information on
multiple threads from the same pid.

Change-Id: I2e460e20154a10f4894ae563331fb32179e4551f
/system/core/libbacktrace/BacktraceThread.h
8ed46278bee3cfc4c216f3a1524744019b693200 29-Oct-2013 Christopher Ferris <cferris@google.com> More libbacktrace fixes.

Included in minor fix ups is the addition of a warning macro to replace
all of the ALOGW calls.

Fix a race where multiple threads could be attempting to unwind the threads
of the current process at the same time.

Bug: 8410085

Change-Id: I02a65dc778dde690e5f95fc8ff069a32d0832fd1
/system/core/libbacktrace/BacktraceThread.h
17e91d44edf5e6476a477a200bcd89d4327358a3 21-Oct-2013 Christopher Ferris <cferris@google.com> Rewrite libbacktrace using C++.

The old code was essentially trying to be C++ in C and was awkward. This
change makes it all objects with a thin layer that C code can use.

There is a C++ backtrace object that is not very useful, this code will
replace it.

This change also includes moving the backtrace test to a gtest, and adding
coverage of all major functionality.

Bug: 8410085
Change-Id: Iae0f1b09b3dd60395f71ed66010c1ea5cdd37841
/system/core/libbacktrace/BacktraceThread.h