Lines Matching refs:frame

36 rt_inline void arm_get_current_stackframe(struct pt_regs *regs, struct stackframe *frame)  in arm_get_current_stackframe()  argument
38 frame->fp = frame_pointer(regs); in arm_get_current_stackframe()
39 frame->sp = regs->ARM_sp; in arm_get_current_stackframe()
40 frame->lr = regs->ARM_lr; in arm_get_current_stackframe()
41 frame->pc = regs->ARM_pc; in arm_get_current_stackframe()
381 int unwind_frame(struct stackframe *frame, const struct unwind_idx **origin_idx, const struct unwin… in unwind_frame() argument
389 low = frame->sp; in unwind_frame()
394 frame->pc, frame->lr, frame->sp); in unwind_frame()
396 idx = unwind_find_idx(frame->pc, origin_idx, exidx_start, exidx_end); in unwind_frame()
399 LOG_W("unwind: Index not found %08lx", frame->pc); in unwind_frame()
409 rt_kprintf("0x%08x @ %s\n", frame->pc, fun_name); in unwind_frame()
414 ctrl.vrs[FP] = frame->fp; in unwind_frame()
415 ctrl.vrs[SP] = frame->sp; in unwind_frame()
416 ctrl.vrs[LR] = frame->lr; in unwind_frame()
471 if (frame->pc == ctrl.vrs[PC]) in unwind_frame()
474 frame->fp = ctrl.vrs[FP]; in unwind_frame()
475 frame->sp = ctrl.vrs[SP]; in unwind_frame()
476 frame->lr = ctrl.vrs[LR]; in unwind_frame()
477 frame->pc = ctrl.vrs[PC]; in unwind_frame()
484 struct stackframe frame; in unwind_backtrace() local
489 arm_get_current_stackframe(regs, &frame); in unwind_backtrace()
492 rt_kprintf("please use: addr2line -e rtthread.elf -a -f %08x\n", frame.pc); in unwind_backtrace()
494 LOG_D("pc = %08x, sp = %08x", frame.pc, frame.sp); in unwind_backtrace()
500 urc = unwind_frame(&frame, &origin_idx, exidx_start, exidx_end); in unwind_backtrace()
505 rt_kprintf(" %08x", frame.pc); in unwind_backtrace()
507 LOG_D("from: pc = %08x, frame = %08x", frame.pc, frame.sp - 4); in unwind_backtrace()