Home
last modified time | relevance | path

Searched refs:rel_pc (Results 1 – 18 of 18) sorted by relevance

/system/core/libunwindstack/
DLocalUnwinder.cpp105 uint64_t rel_pc = elf->GetRelPc(cur_pc, map_info); in Unwind() local
106 uint64_t step_pc = rel_pc; in Unwind()
109 pc_adjustment = GetPcAdjustment(rel_pc, elf, arch); in Unwind()
116 if (elf->StepIfSignalHandler(rel_pc, regs.get(), process_memory_.get())) { in Unwind()
117 step_pc = rel_pc; in Unwind()
127 if (elf->GetFunctionName(rel_pc, &func_name, &func_offset)) { in Unwind()
128 frame_info->emplace_back(map_info, cur_pc - pc_adjustment, rel_pc - pc_adjustment, in Unwind()
131 frame_info->emplace_back(map_info, cur_pc - pc_adjustment, rel_pc - pc_adjustment, "", 0); in Unwind()
DRegs.cpp124 uint64_t GetPcAdjustment(uint64_t rel_pc, Elf* elf, ArchEnum arch) { in GetPcAdjustment() argument
132 if (rel_pc < load_bias) { in GetPcAdjustment()
133 if (rel_pc < 2) { in GetPcAdjustment()
138 uint64_t adjusted_rel_pc = rel_pc - load_bias; in GetPcAdjustment()
157 if (rel_pc < 4) { in GetPcAdjustment()
164 if (rel_pc < 8) { in GetPcAdjustment()
172 if (rel_pc == 0) { in GetPcAdjustment()
DUnwinder.cpp75 frame->rel_pc = dex_pc - info->start; in FillInDexFrame()
77 frame->rel_pc = dex_pc; in FillInDexFrame()
95 FrameData* Unwinder::FillInFrame(MapInfo* map_info, Elf* elf, uint64_t rel_pc, in FillInFrame() argument
102 frame->rel_pc = rel_pc - pc_adjustment; in FillInFrame()
160 uint64_t rel_pc; in Unwind() local
164 rel_pc = step_pc; in Unwind()
178 rel_pc = elf->GetRelPc(step_pc, map_info); in Unwind()
181 step_pc = rel_pc; in Unwind()
184 pc_adjustment = GetPcAdjustment(rel_pc, elf, arch); in Unwind()
220 frame = FillInFrame(map_info, elf, rel_pc, pc_adjustment); in Unwind()
[all …]
DElf.cpp178 bool Elf::StepIfSignalHandler(uint64_t rel_pc, Regs* regs, Memory* process_memory) { in StepIfSignalHandler() argument
184 if (rel_pc < static_cast<uint64_t>(load_bias_)) { in StepIfSignalHandler()
187 return regs->StepIfSignalHandler(rel_pc - load_bias_, this, process_memory); in StepIfSignalHandler()
191 bool Elf::Step(uint64_t rel_pc, Regs* regs, Memory* process_memory, bool* finished) { in Step() argument
198 return interface_->Step(rel_pc, regs, process_memory, finished); in Step()
/system/core/libunwindstack/include/unwindstack/
DLocalUnwinder.h39 LocalFrameData(MapInfo* map_info, uint64_t pc, uint64_t rel_pc, const std::string& function_name, in LocalFrameData()
43 rel_pc(rel_pc), in LocalFrameData()
49 uint64_t rel_pc; member
DElf.h70 bool StepIfSignalHandler(uint64_t rel_pc, Regs* regs, Memory* process_memory);
72 bool Step(uint64_t rel_pc, Regs* regs, Memory* process_memory, bool* finished);
DUnwinder.h43 uint64_t rel_pc; member
128 FrameData* FillInFrame(MapInfo* map_info, Elf* elf, uint64_t rel_pc, uint64_t pc_adjustment);
DRegs.h115 uint64_t GetPcAdjustment(uint64_t rel_pc, Elf* elf, ArchEnum arch);
DElfInterface.h67 virtual bool Step(uint64_t rel_pc, Regs* regs, Memory* process_memory, bool* finished);
/system/core/libunwindstack/tests/
DVerifyBionicTerminationTest.cpp48 static DwarfLocationEnum GetReturnAddressLocation(uint64_t rel_pc, DwarfSection* section) { in GetReturnAddressLocation() argument
53 const DwarfFde* fde = section->GetFdeFromPc(rel_pc); in GetReturnAddressLocation()
58 if (!section->GetCfaLocationInfo(rel_pc, fde, &regs, ARCH_UNKNOWN)) { in GetReturnAddressLocation()
81 DwarfLocationEnum location = GetReturnAddressLocation(frame.rel_pc, interface->debug_frame()); in VerifyReturnAddress()
86 location = GetReturnAddressLocation(frame.rel_pc, interface->eh_frame()); in VerifyReturnAddress()
DUnwinderTest.cpp177 EXPECT_EQ(0U, frame->rel_pc); in TEST_F()
192 EXPECT_EQ(0x100U, frame->rel_pc); in TEST_F()
207 EXPECT_EQ(0x200U, frame->rel_pc); in TEST_F()
242 EXPECT_EQ(0U, frame->rel_pc); in TEST_F()
257 EXPECT_EQ(0x100U, frame->rel_pc); in TEST_F()
272 EXPECT_EQ(0x200U, frame->rel_pc); in TEST_F()
302 EXPECT_EQ(0x5500U, frame->rel_pc); in TEST_F()
332 EXPECT_EQ(0x8500U, frame->rel_pc); in TEST_F()
362 EXPECT_EQ(0U, frame->rel_pc); in TEST_F()
393 EXPECT_EQ(0U, frame->rel_pc); in TEST_F()
[all …]
DLocalUnwinderTest.cpp59 frame.pc, frame.rel_pc); in ErrorMsg()
DRegsTest.cpp95 TEST_F(RegsTest, rel_pc) { in TEST_F() argument
DElfTest.cpp271 TEST_F(ElfTest, rel_pc) { in TEST_F() argument
/system/core/libbacktrace/
DUnwindStack.cpp115 back_frame->rel_pc = frame->rel_pc; in Unwind()
DBacktrace.cpp106 std::string line(StringPrintf("#%02zu pc %" PRIPTR " ", frame->num, frame->rel_pc)); in FormatFrameData()
Dbacktrace_test.cpp828 frame.rel_pc = 2; in TEST_F()
844 frame.rel_pc = 0x20; in TEST_F()
870 frame.rel_pc = 0x12345678; in TEST_F()
900 frame.rel_pc = 0x123456dc; in TEST_F()
/system/core/libbacktrace/include/backtrace/
DBacktrace.h87 uint64_t rel_pc; // The relative pc. member