瀏覽代碼

[libcpu.aarch64] add rt_backtrace function. (#6982)

* [libcpu.aarch64] add rt_backtrace function.
Bernard Xiong 2 年之前
父節點
當前提交
f295d3df78
共有 2 個文件被更改,包括 12 次插入0 次删除
  1. 11 0
      libcpu/aarch64/common/backtrace.c
  2. 1 0
      libcpu/aarch64/common/backtrace.h

+ 11 - 0
libcpu/aarch64/common/backtrace.c

@@ -55,3 +55,14 @@ void backtrace(unsigned long pc, unsigned long lr, unsigned long fp)
     walk_unwind(lr, fp);
     rt_kprintf("\n");
 }
+
+int rt_backtrace(void)
+{
+    unsigned long pc = (unsigned long)backtrace;
+    unsigned long ra = (unsigned long)__builtin_return_address(0U);
+    unsigned long fr = (unsigned long)__builtin_frame_address(0U);
+
+    backtrace(pc, ra, fr);
+    return 0;
+}
+MSH_CMD_EXPORT_ALIAS(rt_backtrace, bt_test, backtrace test);

+ 1 - 0
libcpu/aarch64/common/backtrace.h

@@ -18,5 +18,6 @@ struct bt_frame
 };
 
 void backtrace(unsigned long pc, unsigned long lr, unsigned long fp);
+int rt_backtrace(void);
 
 #endif  /*__BACKTRACE_H__*/