/system/core/libunwindstack/ |
D | RegsArm64.cpp | 40 return regs_[ARM64_REG_PC]; in pc() 44 return regs_[ARM64_REG_SP]; in sp() 48 regs_[ARM64_REG_PC] = pc; in set_pc() 52 regs_[ARM64_REG_SP] = sp; in set_sp() 63 uint64_t lr = regs_[ARM64_REG_LR]; in SetPcFromReturnAddress() 64 if (regs_[ARM64_REG_PC] == lr) { in SetPcFromReturnAddress() 68 regs_[ARM64_REG_PC] = lr; in SetPcFromReturnAddress() 73 fn("x0", regs_[ARM64_REG_R0]); in IterateRegisters() 74 fn("x1", regs_[ARM64_REG_R1]); in IterateRegisters() 75 fn("x2", regs_[ARM64_REG_R2]); in IterateRegisters() [all …]
|
D | RegsMips64.cpp | 40 return regs_[MIPS64_REG_PC]; in pc() 44 return regs_[MIPS64_REG_SP]; in sp() 48 regs_[MIPS64_REG_PC] = pc; in set_pc() 52 regs_[MIPS64_REG_SP] = sp; in set_sp() 64 uint64_t ra = regs_[MIPS64_REG_RA]; in SetPcFromReturnAddress() 65 if (regs_[MIPS64_REG_PC] == ra) { in SetPcFromReturnAddress() 69 regs_[MIPS64_REG_PC] = ra; in SetPcFromReturnAddress() 74 fn("r0", regs_[MIPS64_REG_R0]); in IterateRegisters() 75 fn("r1", regs_[MIPS64_REG_R1]); in IterateRegisters() 76 fn("r2", regs_[MIPS64_REG_R2]); in IterateRegisters() [all …]
|
D | RegsMips.cpp | 40 return regs_[MIPS_REG_PC]; in pc() 44 return regs_[MIPS_REG_SP]; in sp() 48 regs_[MIPS_REG_PC] = static_cast<uint32_t>(pc); in set_pc() 52 regs_[MIPS_REG_SP] = static_cast<uint32_t>(sp); in set_sp() 64 uint32_t ra = regs_[MIPS_REG_RA]; in SetPcFromReturnAddress() 65 if (regs_[MIPS_REG_PC] == ra) { in SetPcFromReturnAddress() 69 regs_[MIPS_REG_PC] = ra; in SetPcFromReturnAddress() 74 fn("r0", regs_[MIPS_REG_R0]); in IterateRegisters() 75 fn("r1", regs_[MIPS_REG_R1]); in IterateRegisters() 76 fn("r2", regs_[MIPS_REG_R2]); in IterateRegisters() [all …]
|
D | RegsX86.cpp | 38 return regs_[X86_REG_PC]; in pc() 42 return regs_[X86_REG_SP]; in sp() 46 regs_[X86_REG_PC] = static_cast<uint32_t>(pc); in set_pc() 50 regs_[X86_REG_SP] = static_cast<uint32_t>(sp); in set_sp() 63 if (!process_memory->ReadFully(regs_[X86_REG_SP], &new_pc, sizeof(new_pc)) || in SetPcFromReturnAddress() 64 new_pc == regs_[X86_REG_PC]) { in SetPcFromReturnAddress() 68 regs_[X86_REG_PC] = new_pc; in SetPcFromReturnAddress() 73 fn("eax", regs_[X86_REG_EAX]); in IterateRegisters() 74 fn("ebx", regs_[X86_REG_EBX]); in IterateRegisters() 75 fn("ecx", regs_[X86_REG_ECX]); in IterateRegisters() [all …]
|
D | RegsX86_64.cpp | 39 return regs_[X86_64_REG_PC]; in pc() 43 return regs_[X86_64_REG_SP]; in sp() 47 regs_[X86_64_REG_PC] = pc; in set_pc() 51 regs_[X86_64_REG_SP] = sp; in set_sp() 64 if (!process_memory->ReadFully(regs_[X86_64_REG_SP], &new_pc, sizeof(new_pc)) || in SetPcFromReturnAddress() 65 new_pc == regs_[X86_64_REG_PC]) { in SetPcFromReturnAddress() 69 regs_[X86_64_REG_PC] = new_pc; in SetPcFromReturnAddress() 74 fn("rax", regs_[X86_64_REG_RAX]); in IterateRegisters() 75 fn("rbx", regs_[X86_64_REG_RBX]); in IterateRegisters() 76 fn("rcx", regs_[X86_64_REG_RCX]); in IterateRegisters() [all …]
|
D | RegsArm.cpp | 39 return regs_[ARM_REG_PC]; in pc() 43 return regs_[ARM_REG_SP]; in sp() 47 regs_[ARM_REG_PC] = pc; in set_pc() 51 regs_[ARM_REG_SP] = sp; in set_sp() 86 uint32_t lr = regs_[ARM_REG_LR]; in SetPcFromReturnAddress() 87 if (regs_[ARM_REG_PC] == lr) { in SetPcFromReturnAddress() 91 regs_[ARM_REG_PC] = lr; in SetPcFromReturnAddress() 96 fn("r0", regs_[ARM_REG_R0]); in IterateRegisters() 97 fn("r1", regs_[ARM_REG_R1]); in IterateRegisters() 98 fn("r2", regs_[ARM_REG_R2]); in IterateRegisters() [all …]
|
D | Unwinder.cpp | 58 uint64_t dex_pc = regs_->dex_pc(); in FillInDexFrame() 60 frame->sp = regs_->sp(); in FillInDexFrame() 99 frame->sp = regs_->sp(); in FillInFrame() 101 frame->pc = regs_->pc() - pc_adjustment; in FillInFrame() 147 ArchEnum arch = regs_->Arch(); in Unwind() 152 uint64_t cur_pc = regs_->pc(); in Unwind() 153 uint64_t cur_sp = regs_->sp(); in Unwind() 155 MapInfo* map_info = maps_->Find(regs_->pc()); in Unwind() 161 step_pc = regs_->pc(); in Unwind() 175 step_pc = regs_->pc(); in Unwind() [all …]
|
D | ArmExidx.h | 57 : regs_(regs), elf_memory_(elf_memory), process_memory_(process_memory) {} in ArmExidx() 75 RegsArm* regs() { return regs_; } in regs() 107 RegsArm* regs_ = nullptr; variable
|
D | ArmExidx.cpp | 238 if (!process_memory_->Read32(cfa_, &(*regs_)[reg])) { in DecodePrefix_10_00() 249 cfa_ = (*regs_)[ARM_REG_SP]; in DecodePrefix_10_00() 286 cfa_ = (*regs_)[bits]; in DecodePrefix_10_01() 331 if (!process_memory_->Read32(cfa_, &(*regs_)[i])) { in DecodePrefix_10_10() 339 if (!process_memory_->Read32(cfa_, &(*regs_)[ARM_REG_R14])) { in DecodePrefix_10_10() 422 if (!process_memory_->Read32(cfa_, &(*regs_)[reg])) { in DecodePrefix_10_11_0001()
|
/system/core/libunwindstack/tests/ |
D | UnwinderTest.cpp | 140 regs_.FakeSetArch(ARCH_ARM); in SetUp() 141 regs_.FakeSetReturnAddressValid(false); in SetUp() 145 static RegsFake regs_; member in unwindstack::UnwinderTest 150 RegsFake UnwinderTest::regs_(5); member in unwindstack::UnwinderTest 158 regs_.set_pc(0x1000); in TEST_F() 159 regs_.set_sp(0x10000); in TEST_F() 164 Unwinder unwinder(64, maps_.get(), ®s_, process_memory_); in TEST_F() 222 regs_.set_pc(0x1000); in TEST_F() 223 regs_.set_sp(0x10000); in TEST_F() 228 Unwinder unwinder(64, maps_.get(), ®s_, process_memory_); in TEST_F() [all …]
|
D | UnwindOfflineTest.cpp | 96 regs_.reset(regs); in Init() 102 regs_.reset(regs); in Init() 108 regs_.reset(regs); in Init() 114 regs_.reset(regs); in Init() 157 std::unique_ptr<Regs> regs_; member in unwindstack::UnwindOfflineTest 207 std::unique_ptr<Regs> regs_copy(regs_->Clone()); in TEST_F() 208 Unwinder unwinder(128, maps_.get(), regs_.get(), process_memory_); in TEST_F() 248 Unwinder unwinder(128, maps_.get(), regs_.get(), process_memory_); in TEST_F() 269 Unwinder unwinder(128, maps_.get(), regs_.get(), process_memory_); in TEST_F() 311 Unwinder unwinder(128, maps_.get(), regs_.get(), process_memory_); in TEST_F() [all …]
|
/system/core/libunwindstack/include/unwindstack/ |
D | Regs.h | 94 : Regs(total_regs, return_loc), regs_(total_regs) {} in RegsImpl() 99 inline AddressType& operator[](size_t reg) { return regs_[reg]; } 101 void* RawData() override { return regs_.data(); } in RawData() 104 for (size_t i = 0; i < regs_.size(); ++i) { in IterateRegisters() 105 fn(std::to_string(i).c_str(), regs_[i]); in IterateRegisters() 110 std::vector<AddressType> regs_;
|
D | Unwinder.h | 67 : max_frames_(max_frames), maps_(maps), regs_(regs), process_memory_(process_memory) { in Unwinder() 95 void SetRegs(Regs* regs) { regs_ = regs; } in SetRegs() 127 Regs* regs_; variable
|