• Home
  • Raw
  • Download

Lines Matching refs:frame

55   FrameData* frame = &frames_.at(frame_num);  in FillInDexFrame()  local
56 frame->num = frame_num; in FillInDexFrame()
59 frame->pc = dex_pc; in FillInDexFrame()
60 frame->sp = regs_->sp(); in FillInDexFrame()
64 frame->map_start = info->start; in FillInDexFrame()
65 frame->map_end = info->end; in FillInDexFrame()
66 frame->map_elf_start_offset = info->elf_start_offset; in FillInDexFrame()
67 frame->map_exact_offset = info->offset; in FillInDexFrame()
68 frame->map_load_bias = info->load_bias; in FillInDexFrame()
69 frame->map_flags = info->flags; in FillInDexFrame()
71 frame->map_name = info->name; in FillInDexFrame()
73 frame->rel_pc = dex_pc - info->start; in FillInDexFrame()
75 frame->rel_pc = dex_pc; in FillInDexFrame()
88 dex_files_->GetMethodInformation(maps_, info, dex_pc, &frame->function_name, in FillInDexFrame()
89 &frame->function_offset); in FillInDexFrame()
97 FrameData* frame = &frames_.at(frame_num); in FillInFrame() local
98 frame->num = frame_num; in FillInFrame()
99 frame->sp = regs_->sp(); in FillInFrame()
100 frame->rel_pc = rel_pc - pc_adjustment; in FillInFrame()
101 frame->pc = regs_->pc() - pc_adjustment; in FillInFrame()
109 frame->map_name = map_info->name; in FillInFrame()
110 if (embedded_soname_ && map_info->elf_start_offset != 0 && !frame->map_name.empty()) { in FillInFrame()
113 frame->map_name += '!' + soname; in FillInFrame()
117 frame->map_elf_start_offset = map_info->elf_start_offset; in FillInFrame()
118 frame->map_exact_offset = map_info->offset; in FillInFrame()
119 frame->map_start = map_info->start; in FillInFrame()
120 frame->map_end = map_info->end; in FillInFrame()
121 frame->map_flags = map_info->flags; in FillInFrame()
122 frame->map_load_bias = elf->GetLoadBias(); in FillInFrame()
123 return frame; in FillInFrame()
201 FrameData* frame = nullptr; in Unwind() local
218 frame = FillInFrame(map_info, elf, rel_pc, pc_adjustment); in Unwind()
244 if (frame != nullptr) { in Unwind()
247 frame->rel_pc = rel_pc; in Unwind()
248 frame->pc += pc_adjustment; in Unwind()
259 if (frame != nullptr) { in Unwind()
261 !elf->GetFunctionName(step_pc, &frame->function_name, &frame->function_offset)) { in Unwind()
262 frame->function_name = ""; in Unwind()
263 frame->function_offset = 0; in Unwind()
308 std::string Unwinder::FormatFrame(const FrameData& frame) { in FormatFrame() argument
311 data += android::base::StringPrintf(" #%02zu pc %08" PRIx64, frame.num, frame.rel_pc); in FormatFrame()
313 data += android::base::StringPrintf(" #%02zu pc %016" PRIx64, frame.num, frame.rel_pc); in FormatFrame()
316 if (frame.map_start == frame.map_end) { in FormatFrame()
319 } else if (!frame.map_name.empty()) { in FormatFrame()
320 data += " " + frame.map_name; in FormatFrame()
322 data += android::base::StringPrintf(" <anonymous:%" PRIx64 ">", frame.map_start); in FormatFrame()
325 if (frame.map_elf_start_offset != 0) { in FormatFrame()
326 data += android::base::StringPrintf(" (offset 0x%" PRIx64 ")", frame.map_elf_start_offset); in FormatFrame()
329 if (!frame.function_name.empty()) { in FormatFrame()
330 data += " (" + demangle(frame.function_name.c_str()); in FormatFrame()
331 if (frame.function_offset != 0) { in FormatFrame()
332 data += android::base::StringPrintf("+%" PRId64, frame.function_offset); in FormatFrame()
337 MapInfo* map_info = maps_->Find(frame.map_start); in FormatFrame()