0c572d01afdf9bfee340ab5c167d744ea91316bf |
|
16-Jun-2016 |
Christopher Ferris <cferris@google.com> |
Fix race condition updating local map data. If the underlying local map changes, it's possible for multiple threads to try and modify the map data associated with the UnwindLocalMap object. Add a lock when generating the local map to avoid this problem. In addition, add a read lock whenever any caller gets the maps iterator. Updated all iterator callers to make this lock. Bug: 29387050 Bug: 31067025 (cherry picked from commit 3a14004c7f521cf2ca6dfea182fa7441e77c97e7) Change-Id: Id00116f156a24b36085c0d5dfc3dde4d2ac55194
/system/core/libbacktrace/UnwindMap.cpp
|
d4c884330c384bbb06f9a0d1fee2d2ae2086521c |
|
05-Feb-2016 |
Christopher Ferris <cferris@google.com> |
Fix use of uninitialized memory. When creating an UnwindMapLocal fails in the Build() function call, the destructor for UnwindMap is called. Unfortunately, the map_cursor_ member variable has not been initialized, so the call to destroy it winds up operating on garbage data. Part of this is a result of a bad class hierarchy, so this refactors the classes slightly, and properly initializes the map_cursor_ member variable in the base class. Bug: 26931578 Change-Id: I885596bf65e4ef63559cee2c56cd41576d5ecc1b
/system/core/libbacktrace/UnwindMap.cpp
|
af67fb247540ef084a0b644e1d3bf225db4de6bd |
|
06-May-2015 |
Christopher Ferris <cferris@google.com> |
Add offset to map data. Also, print the offset in the maps section. Bug: 20864928 Change-Id: I71f005726e5ef73cf75bbcb8f829fd5127cb9d61 (cherry picked from commit 5c8856854de4ae7836fc1073d534f4b7b7a03eb9)
/system/core/libbacktrace/UnwindMap.cpp
|
329ed7dae49eba09bdf865dd999d1a7e73bb9687 |
|
02-May-2015 |
Christopher Ferris <cferris@google.com> |
Add load base to map for relocation packing. The new linker relocation packing support uses non-zero load bases, so we better handle them properly. Also print out the load base for a map if it's non-zero. Bug: 20687795 Change-Id: Iec2d1db2051e7b4a278c1dfa57d745128a7f2974
/system/core/libbacktrace/UnwindMap.cpp
|
2c43cff01d1271be451671567955158629b23670 |
|
27-Mar-2015 |
Christopher Ferris <cferris@google.com> |
Refactor the code. The object hierarchy was confusing and convoluted. This removes a lot of unnecessary code, and consolidates the BacktraceCurrent and BacktraceThread code into BacktraceCurrent. Change-Id: I01c8407d493712a48169df49dd3ff46db4a7c3ae
/system/core/libbacktrace/UnwindMap.cpp
|
12385e3ad085aa1ac06c26529b32b688503a9fcf |
|
06-Feb-2015 |
Christopher Ferris <cferris@google.com> |
Move map data into backtrace data proper. The backtrace structure used to include a pointer to a backtrace_map_t that represented the map data for a particular pc. This introduced a race condition where the pointer could be discarded, but the backtrace structure still contained a pointer to garbage memory. Now all of the map information is right in the structure. Bug: 19028453 Change-Id: If7088a73f3c6bf1f3bc8cdd2bb4b62e7cab831c0
/system/core/libbacktrace/UnwindMap.cpp
|
dda47b786835ef3689f06e24650eb65176e2dc5e |
|
05-Aug-2014 |
Christopher Ferris <cferris@google.com> |
Allow getting an uncached process map. (cherry picked from commit f02593b0e61f8108449770094caa7bb39a646ec1) Change-Id: I2012bf2dc553ebc663345b9eac6d794e80df9c00
/system/core/libbacktrace/UnwindMap.cpp
|
ac2fe7eb81789274ab98573d0c4b0866bed1f254 |
|
22-May-2014 |
Dan Albert <danalbert@google.com> |
Add missing headers These headers are needed for pid_t and free when using libc++ headers (POSIX does not require that the symbols be exposed with the previous includes). Change-Id: Ia51a4fdfdbae7377130a43c401c2d8d241671d1e
/system/core/libbacktrace/UnwindMap.cpp
|
e29609106033a48a6128664668d22bf4fb42a7ee |
|
08-Mar-2014 |
Christopher Ferris <cferris@google.com> |
Create an UnwindMapLocal object. The way libunwind handles local unwinds is different from remote unwinds, so create a new map object to handle the differences. Add new test to verify the map data is being generated correctly. Add new tests to check for leaks. Refactor the BACK_LOGW code into a single header file. Change-Id: I01f3cbfc4b927646174ea1b614fa25d23b9b3427
/system/core/libbacktrace/UnwindMap.cpp
|
73dc1cc3fb799be309b8db57618be07de755eca4 |
|
01-Feb-2014 |
Christopher Ferris <cferris@google.com> |
Call a specialized local map set. Bug: 12852152 Change-Id: I8a0c558bc218805b0e06371af0af055e4aa6e0bb
/system/core/libbacktrace/UnwindMap.cpp
|
2b4ae52a56e175cc64baaa6c70412d06411d7af0 |
|
29-Jan-2014 |
Christopher Ferris <cferris@google.com> |
Fix global pointing to local variable. Change-Id: I933cbb680ca6310c13634f09a9827077c8dbd568
/system/core/libbacktrace/UnwindMap.cpp
|
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/UnwindMap.cpp
|