From f295d3df7880f37eb7a7cd0fc18c2827e40420e6 Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Mon, 27 Feb 2023 10:04:10 +0800 Subject: [PATCH] [libcpu.aarch64] add rt_backtrace function. (#6982) * [libcpu.aarch64] add rt_backtrace function. --- libcpu/aarch64/common/backtrace.c | 11 +++++++++++ libcpu/aarch64/common/backtrace.h | 1 + 2 files changed, 12 insertions(+) diff --git a/libcpu/aarch64/common/backtrace.c b/libcpu/aarch64/common/backtrace.c index c3e3803f93..d8985d0c09 100644 --- a/libcpu/aarch64/common/backtrace.c +++ b/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); diff --git a/libcpu/aarch64/common/backtrace.h b/libcpu/aarch64/common/backtrace.h index b34601da58..8c8006690c 100644 --- a/libcpu/aarch64/common/backtrace.h +++ b/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__*/ -- GitLab