diff options
Diffstat (limited to 'libunwindstack/include/unwindstack')
-rw-r--r-- | libunwindstack/include/unwindstack/Regs.h | 4 | ||||
-rw-r--r-- | libunwindstack/include/unwindstack/RegsArm.h | 2 | ||||
-rw-r--r-- | libunwindstack/include/unwindstack/RegsArm64.h | 2 | ||||
-rw-r--r-- | libunwindstack/include/unwindstack/RegsMips.h | 2 | ||||
-rw-r--r-- | libunwindstack/include/unwindstack/RegsMips64.h | 2 | ||||
-rw-r--r-- | libunwindstack/include/unwindstack/RegsX86.h | 2 | ||||
-rw-r--r-- | libunwindstack/include/unwindstack/RegsX86_64.h | 2 | ||||
-rw-r--r-- | libunwindstack/include/unwindstack/Unwinder.h | 7 |
8 files changed, 9 insertions, 14 deletions
diff --git a/libunwindstack/include/unwindstack/Regs.h b/libunwindstack/include/unwindstack/Regs.h index 4f761b4ef..a367e6cf1 100644 --- a/libunwindstack/include/unwindstack/Regs.h +++ b/libunwindstack/include/unwindstack/Regs.h @@ -64,8 +64,6 @@ class Regs { uint64_t dex_pc() { return dex_pc_; } void set_dex_pc(uint64_t dex_pc) { dex_pc_ = dex_pc; } - virtual uint64_t GetPcAdjustment(uint64_t rel_pc, Elf* elf) = 0; - virtual bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) = 0; virtual bool SetPcFromReturnAddress(Memory* process_memory) = 0; @@ -110,6 +108,8 @@ class RegsImpl : public Regs { std::vector<AddressType> regs_; }; +uint64_t GetPcAdjustment(uint64_t rel_pc, Elf* elf, ArchEnum arch); + } // namespace unwindstack #endif // _LIBUNWINDSTACK_REGS_H diff --git a/libunwindstack/include/unwindstack/RegsArm.h b/libunwindstack/include/unwindstack/RegsArm.h index aa029be64..fbb34e7f8 100644 --- a/libunwindstack/include/unwindstack/RegsArm.h +++ b/libunwindstack/include/unwindstack/RegsArm.h @@ -36,8 +36,6 @@ class RegsArm : public RegsImpl<uint32_t> { ArchEnum Arch() override final; - uint64_t GetPcAdjustment(uint64_t rel_pc, Elf* elf) override; - bool SetPcFromReturnAddress(Memory* process_memory) override; bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override; diff --git a/libunwindstack/include/unwindstack/RegsArm64.h b/libunwindstack/include/unwindstack/RegsArm64.h index 5cd7e5ba9..2b3ddeb77 100644 --- a/libunwindstack/include/unwindstack/RegsArm64.h +++ b/libunwindstack/include/unwindstack/RegsArm64.h @@ -36,8 +36,6 @@ class RegsArm64 : public RegsImpl<uint64_t> { ArchEnum Arch() override final; - uint64_t GetPcAdjustment(uint64_t rel_pc, Elf* elf) override; - bool SetPcFromReturnAddress(Memory* process_memory) override; bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override; diff --git a/libunwindstack/include/unwindstack/RegsMips.h b/libunwindstack/include/unwindstack/RegsMips.h index 8164a1515..dc09b83b8 100644 --- a/libunwindstack/include/unwindstack/RegsMips.h +++ b/libunwindstack/include/unwindstack/RegsMips.h @@ -36,8 +36,6 @@ class RegsMips : public RegsImpl<uint32_t> { ArchEnum Arch() override final; - uint64_t GetPcAdjustment(uint64_t rel_pc, Elf* elf) override; - bool SetPcFromReturnAddress(Memory* process_memory) override; bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override; diff --git a/libunwindstack/include/unwindstack/RegsMips64.h b/libunwindstack/include/unwindstack/RegsMips64.h index c98254259..64a80dc0b 100644 --- a/libunwindstack/include/unwindstack/RegsMips64.h +++ b/libunwindstack/include/unwindstack/RegsMips64.h @@ -36,8 +36,6 @@ class RegsMips64 : public RegsImpl<uint64_t> { ArchEnum Arch() override final; - uint64_t GetPcAdjustment(uint64_t rel_pc, Elf* elf) override; - bool SetPcFromReturnAddress(Memory* process_memory) override; bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override; diff --git a/libunwindstack/include/unwindstack/RegsX86.h b/libunwindstack/include/unwindstack/RegsX86.h index 2323a4fc0..cfbdda661 100644 --- a/libunwindstack/include/unwindstack/RegsX86.h +++ b/libunwindstack/include/unwindstack/RegsX86.h @@ -37,8 +37,6 @@ class RegsX86 : public RegsImpl<uint32_t> { ArchEnum Arch() override final; - uint64_t GetPcAdjustment(uint64_t rel_pc, Elf* elf) override; - bool SetPcFromReturnAddress(Memory* process_memory) override; bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override; diff --git a/libunwindstack/include/unwindstack/RegsX86_64.h b/libunwindstack/include/unwindstack/RegsX86_64.h index 3e919a4f8..a11aef09f 100644 --- a/libunwindstack/include/unwindstack/RegsX86_64.h +++ b/libunwindstack/include/unwindstack/RegsX86_64.h @@ -37,8 +37,6 @@ class RegsX86_64 : public RegsImpl<uint64_t> { ArchEnum Arch() override final; - uint64_t GetPcAdjustment(uint64_t rel_pc, Elf* elf) override; - bool SetPcFromReturnAddress(Memory* process_memory) override; bool StepIfSignalHandler(uint64_t elf_offset, Elf* elf, Memory* process_memory) override; diff --git a/libunwindstack/include/unwindstack/Unwinder.h b/libunwindstack/include/unwindstack/Unwinder.h index 67762c0bd..4d49f236a 100644 --- a/libunwindstack/include/unwindstack/Unwinder.h +++ b/libunwindstack/include/unwindstack/Unwinder.h @@ -114,6 +114,13 @@ class Unwinder { ErrorCode LastErrorCode() { return last_error_.code; } uint64_t LastErrorAddress() { return last_error_.address; } + // Builds a frame for symbolization using the maps from this unwinder. The + // constructed frame contains just enough information to be used to symbolize + // frames collected by frame-pointer unwinding that's done outside of + // libunwindstack. This is used by tombstoned to symbolize frame pointer-based + // stack traces that are collected by tools such as GWP-ASan and MTE. + FrameData BuildFrameFromPcOnly(uint64_t pc); + protected: Unwinder(size_t max_frames) : max_frames_(max_frames) { frames_.reserve(max_frames); } |