MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / _bt_uaddr

Function _bt_uaddr

libcpu/aarch64/common/backtrace.c:56–77  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

54#ifdef RT_USING_SMART
55#include <lwp_user_mm.h>
56rt_inline rt_err_t _bt_uaddr(rt_lwp_t lwp, rt_ubase_t *fp, struct rt_hw_backtrace_frame *frame)
57{
58 rt_err_t rc;
59 if (lwp_data_get(lwp, &frame->fp, fp, WORD) != WORD)
60 {
61 rc = -RT_EFAULT;
62 }
63 else if (lwp_data_get(lwp, &frame->pc, fp + 1, WORD) != WORD)
64 {
65 rc = -RT_EFAULT;
66 }
67 else if ((rt_base_t)fp == frame->fp)
68 {
69 rc = -RT_ERROR;
70 }
71 else
72 {
73 frame->pc -= INST_WORD_BYTES;
74 rc = RT_EOK;
75 }
76 return rc;
77}
78#endif /* RT_USING_SMART */
79
80rt_err_t rt_hw_backtrace_frame_unwind(rt_thread_t thread, struct rt_hw_backtrace_frame *frame)

Callers 1

Calls 1

lwp_data_getFunction · 0.85

Tested by

no test coverage detected