diff options
author | David Srbecky <dsrbecky@google.com> | 2021-03-12 16:36:27 +0000 |
---|---|---|
committer | David Srbecky <dsrbecky@google.com> | 2021-03-17 19:43:19 +0000 |
commit | fad04881a56fc8cae98dbf8d38f2e274effdcb40 (patch) | |
tree | 24f0e15f8fba32405db75a42635dac21f2f5955b /libunwindstack/include/unwindstack/JitDebug.h | |
parent | cd5123b49f3cd86ce3a06ddb207932b4571491ed (diff) | |
download | unwinding-fad04881a56fc8cae98dbf8d38f2e274effdcb40.tar.gz |
Simplify JitDebug implementation with templates.
Reduce the amount of repeated code using templates.
Test: libunwindstack_unit_test
Change-Id: I92ab53b050bcb877974dff95496a1fc41cbb41c0
Diffstat (limited to 'libunwindstack/include/unwindstack/JitDebug.h')
-rw-r--r-- | libunwindstack/include/unwindstack/JitDebug.h | 26 |
1 files changed, 4 insertions, 22 deletions
diff --git a/libunwindstack/include/unwindstack/JitDebug.h b/libunwindstack/include/unwindstack/JitDebug.h index d8c04e0..c4944d7 100644 --- a/libunwindstack/include/unwindstack/JitDebug.h +++ b/libunwindstack/include/unwindstack/JitDebug.h @@ -34,31 +34,13 @@ class Elf; class Maps; enum ArchEnum : uint8_t; -class JitDebug : public Global { +class JitDebug { public: - explicit JitDebug(std::shared_ptr<Memory>& memory); - JitDebug(std::shared_ptr<Memory>& memory, std::vector<std::string>& search_libs); - virtual ~JitDebug(); + virtual ~JitDebug() {} - Elf* Find(Maps* maps, uint64_t pc); - - private: - void Init(Maps* maps); - - uint64_t (JitDebug::*read_descriptor_func_)(uint64_t) = nullptr; - uint64_t (JitDebug::*read_entry_func_)(uint64_t*, uint64_t*) = nullptr; - - uint64_t ReadDescriptor32(uint64_t); - uint64_t ReadDescriptor64(uint64_t); - - uint64_t ReadEntry32Pack(uint64_t* start, uint64_t* size); - uint64_t ReadEntry32Pad(uint64_t* start, uint64_t* size); - uint64_t ReadEntry64(uint64_t* start, uint64_t* size); - - bool ReadVariableData(uint64_t ptr_offset) override; - - void ProcessArch() override; + virtual Elf* Find(Maps* maps, uint64_t pc) = 0; + protected: uint64_t entry_addr_ = 0; bool initialized_ = false; std::vector<Elf*> elf_list_; |