Lines Matching refs:frame
56 FrameData* frame = &frames_.at(frame_num); in FillInDexFrame() local
57 frame->num = frame_num; in FillInDexFrame()
60 frame->pc = dex_pc; in FillInDexFrame()
61 frame->sp = regs_->sp(); in FillInDexFrame()
65 frame->map_start = info->start(); in FillInDexFrame()
66 frame->map_end = info->end(); in FillInDexFrame()
70 frame->map_elf_start_offset = info->offset(); in FillInDexFrame()
71 frame->map_exact_offset = info->offset(); in FillInDexFrame()
72 frame->map_load_bias = info->load_bias(); in FillInDexFrame()
73 frame->map_flags = info->flags(); in FillInDexFrame()
75 frame->map_name = info->name(); in FillInDexFrame()
77 frame->rel_pc = dex_pc - info->start(); in FillInDexFrame()
79 frame->rel_pc = dex_pc; in FillInDexFrame()
93 dex_files_->GetFunctionName(maps_, dex_pc, &frame->function_name, &frame->function_offset); in FillInDexFrame()
101 FrameData* frame = &frames_.at(frame_num); in FillInFrame() local
102 frame->num = frame_num; in FillInFrame()
103 frame->sp = regs_->sp(); in FillInFrame()
104 frame->rel_pc = rel_pc - pc_adjustment; in FillInFrame()
105 frame->pc = regs_->pc() - pc_adjustment; in FillInFrame()
113 frame->map_name = map_info->name(); in FillInFrame()
114 if (embedded_soname_ && map_info->elf_start_offset() != 0 && !frame->map_name.empty()) { in FillInFrame()
118 map_with_soname += frame->map_name; in FillInFrame()
121 frame->map_name = SharedString(std::move(map_with_soname)); in FillInFrame()
125 frame->map_elf_start_offset = map_info->elf_start_offset(); in FillInFrame()
126 frame->map_exact_offset = map_info->offset(); in FillInFrame()
127 frame->map_start = map_info->start(); in FillInFrame()
128 frame->map_end = map_info->end(); in FillInFrame()
129 frame->map_flags = map_info->flags(); in FillInFrame()
130 frame->map_load_bias = elf->GetLoadBias(); in FillInFrame()
131 return frame; in FillInFrame()
217 FrameData* frame = nullptr; in Unwind() local
234 frame = FillInFrame(map_info, elf, rel_pc, pc_adjustment); in Unwind()
266 if (is_signal_frame && frame != nullptr) { in Unwind()
269 frame->rel_pc = rel_pc; in Unwind()
270 frame->pc += pc_adjustment; in Unwind()
278 if (frame != nullptr) { in Unwind()
280 !elf->GetFunctionName(step_pc, &frame->function_name, &frame->function_offset)) { in Unwind()
281 frame->function_name = ""; in Unwind()
282 frame->function_offset = 0; in Unwind()
327 std::string Unwinder::FormatFrame(const FrameData& frame) const { in FormatFrame()
330 data += android::base::StringPrintf(" #%02zu pc %08" PRIx64, frame.num, frame.rel_pc); in FormatFrame()
332 data += android::base::StringPrintf(" #%02zu pc %016" PRIx64, frame.num, frame.rel_pc); in FormatFrame()
335 if (frame.map_start == frame.map_end) { in FormatFrame()
338 } else if (!frame.map_name.empty()) { in FormatFrame()
340 data += frame.map_name; in FormatFrame()
342 data += android::base::StringPrintf(" <anonymous:%" PRIx64 ">", frame.map_start); in FormatFrame()
345 if (frame.map_elf_start_offset != 0) { in FormatFrame()
346 data += android::base::StringPrintf(" (offset 0x%" PRIx64 ")", frame.map_elf_start_offset); in FormatFrame()
349 if (!frame.function_name.empty()) { in FormatFrame()
350 char* demangled_name = __cxa_demangle(frame.function_name.c_str(), nullptr, nullptr, nullptr); in FormatFrame()
353 data += frame.function_name; in FormatFrame()
359 if (frame.function_offset != 0) { in FormatFrame()
360 data += android::base::StringPrintf("+%" PRId64, frame.function_offset); in FormatFrame()
365 MapInfo* map_info = maps_->Find(frame.map_start); in FormatFrame()
447 FrameData frame; in BuildFrameFromPcOnly() local
451 frame.pc = pc; in BuildFrameFromPcOnly()
452 frame.rel_pc = pc; in BuildFrameFromPcOnly()
453 return frame; in BuildFrameFromPcOnly()
476 frame.rel_pc = relative_pc; in BuildFrameFromPcOnly()
477 frame.pc = pc - pc_adjustment; in BuildFrameFromPcOnly()
478 frame.map_name = map_info->name(); in BuildFrameFromPcOnly()
479 frame.map_elf_start_offset = map_info->elf_start_offset(); in BuildFrameFromPcOnly()
480 frame.map_exact_offset = map_info->offset(); in BuildFrameFromPcOnly()
481 frame.map_start = map_info->start(); in BuildFrameFromPcOnly()
482 frame.map_end = map_info->end(); in BuildFrameFromPcOnly()
483 frame.map_flags = map_info->flags(); in BuildFrameFromPcOnly()
484 frame.map_load_bias = elf->GetLoadBias(); in BuildFrameFromPcOnly()
487 !elf->GetFunctionName(debug_pc, &frame.function_name, &frame.function_offset)) { in BuildFrameFromPcOnly()
488 frame.function_name = ""; in BuildFrameFromPcOnly()
489 frame.function_offset = 0; in BuildFrameFromPcOnly()
491 return frame; in BuildFrameFromPcOnly()