summaryrefslogtreecommitdiff
path: root/libunwindstack/Symbols.h
diff options
context:
space:
mode:
authorChristopher Ferris <cferris@google.com>2017-12-20 18:49:01 -0800
committerChristopher Ferris <cferris@google.com>2018-01-12 11:18:42 -0800
commit395f42d36d37a81ce1c11918bfded0a2afaa6195 (patch)
treebb93f9254cc8a9757efcb30381777c887e061aea /libunwindstack/Symbols.h
parent25b928937f95e7cee042350993700f0c6d67bb5c (diff)
downloadunwinding-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.h3
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_;