diff options
author | Christopher Ferris <cferris@google.com> | 2017-12-20 18:49:01 -0800 |
---|---|---|
committer | Christopher Ferris <cferris@google.com> | 2018-01-12 11:18:42 -0800 |
commit | 395f42d36d37a81ce1c11918bfded0a2afaa6195 (patch) | |
tree | bb93f9254cc8a9757efcb30381777c887e061aea /libunwindstack/Symbols.h | |
parent | 25b928937f95e7cee042350993700f0c6d67bb5c (diff) | |
download | unwinding-395f42d36d37a81ce1c11918bfded0a2afaa6195.tar.gz |
Add ability to read jit gdb data.
Changes:
- New JitDebug class to handle all of the jit gdb interface.
- Add unit tests for all, along with new offline test using debug data.
- Add new Memory type called MemoryOfflineParts that has multiple
MemoryOffline objects to support the offline test.
- Update the tools to use the JitDebug object.
- Modify libbacktrace to use the JitDebug, but only looking in libart.so
and libartd.so.
- Change the Format32Bits to Is32Bit since it's more accurate and I use
it in a different context where original name didn't make sense.
- Add a new function to find global variables in an elf file
(GetGlobalVariable).
- Add a new function to determine if a pc is valid for this elf (IsValidPc).
Bug: 68396769
Test: Ran new unit tests. Added new offline test that uses jit debug data.
Test: Ran art test that generates jit data and verified a crash unwinds
Test: through the jit data.
Change-Id: I6e7ee2f5bab2242028a06feece156dff21c0a974
Diffstat (limited to 'libunwindstack/Symbols.h')
-rw-r--r-- | libunwindstack/Symbols.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libunwindstack/Symbols.h b/libunwindstack/Symbols.h index 689144b..7d239c1 100644 --- a/libunwindstack/Symbols.h +++ b/libunwindstack/Symbols.h @@ -47,6 +47,9 @@ class Symbols { bool GetName(uint64_t addr, uint64_t load_bias, Memory* elf_memory, std::string* name, uint64_t* func_offset); + template <typename SymType> + bool GetGlobal(Memory* elf_memory, const std::string& name, uint64_t* memory_address); + void ClearCache() { symbols_.clear(); cur_offset_ = offset_; |