You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ar...@apache.org on 2021/12/29 04:10:02 UTC
[incubator-nuttx] 01/03: libs/dumpstack: add support for print symbol name
This is an automated email from the ASF dual-hosted git repository.
archer pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 7f2c5be07a8615d5d4b753b4991397e0b457e11a
Author: chao.an <an...@xiaomi.com>
AuthorDate: Tue Dec 7 21:12:42 2021 +0800
libs/dumpstack: add support for print symbol name
ap> mw -1
[ EMERG] arm_usagefault: PANIC!!! Usage Fault:
[ EMERG] arm_usagefault: IRQ: 6 regs: 0x3c24fa48
[ EMERG] arm_usagefault: BASEPRI: 000000e0 PRIMASK: 00000000 IPSR: 00000006 CONTROL: 00000004
[ EMERG] arm_usagefault: CFSR: 01000000 HFSR: 00000000 DFSR: 00000000 BFAR: 40101000 AFSR: 00000000
[ EMERG] arm_usagefault: Usage Fault Reason:
[ EMERG] arm_usagefault: Unaligned access
[ EMERG] up_assert: Assertion failed at file:armv8-m/arm_usagefault.c line: 113 task: init
[ EMERG] backtrace|10: 0x2c325bde 0x2c319b98 0x2c3261cc 0x2c316b20 0x2c32699c 0x2c303a50 0x2c326072 0x2c3206ea
[ EMERG] backtrace|10: 0x2c3428cc 0x2c33ed14 0x2c342e8e 0x2c34403a 0x2c344ac0 0x2c319b60 0x2c3080ba
[ EMERG] [10][ 0] [<0x2c325bde>] up_backtrace+0xa/0x13c
[ EMERG] [10][ 1] [<0x2c319b98>] sched_dumpstack+0x10/0xc0
[ EMERG] [10][ 2] [<0x2c3261cc>] up_assert+0x48/0x414
[ EMERG] [10][ 3] [<0x2c316b20>] _assert+0x4/0x10
[ EMERG] [10][ 4] [<0x2c32699c>] arm_usagefault+0xa8/0x138
[ EMERG] [10][ 5] [<0x2c303a50>] irq_dispatch+0x1c/0x40
[ EMERG] [10][ 6] [<0x2c326072>] arm_doirq+0x1a/0x2c
[ EMERG] [10][ 7] [<0x2c3206ea>] exception_common+0x4a/0xac
[ EMERG] [10][ 8] [<0x2c3428cc>] cmd_mw+0xec/0x11c
[ EMERG] [10][ 9] [<0x2c33ed14>] nsh_parse_command+0x684/0xcf0
[ EMERG] [10][10] [<0x2c342e8e>] nsh_session+0x92/0x168
[ EMERG] [10][11] [<0x2c34403a>] nsh_consolemain+0x1e/0x38
[ EMERG] [10][12] [<0x2c344ac0>] nsh_main+0x30/0x50
[ EMERG] [10][13] [<0x2c319b60>] nxtask_startup+0x40/0x68
[ EMERG] [10][14] [<0x2c3080ba>] nxtask_start+0x46/0x60
Signed-off-by: chao.an <an...@xiaomi.com>
---
libs/libc/sched/sched_dumpstack.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/libs/libc/sched/sched_dumpstack.c b/libs/libc/sched/sched_dumpstack.c
index 39d2e0e..3f05af0 100644
--- a/libs/libc/sched/sched_dumpstack.c
+++ b/libs/libc/sched/sched_dumpstack.c
@@ -23,6 +23,7 @@
****************************************************************************/
#include <nuttx/config.h>
+#include <nuttx/allsyms.h>
#include <sys/types.h>
@@ -52,8 +53,10 @@
void sched_dumpstack(pid_t tid)
{
FAR void *address[DUMP_DEPTH];
+#ifndef CONFIG_ALLSYMS
char line[DUMP_LINESIZE + 1];
int ret = 0;
+#endif
int size;
int i;
@@ -63,6 +66,7 @@ void sched_dumpstack(pid_t tid)
return;
}
+#ifndef CONFIG_ALLSYMS
for (i = 0; i < size; i++)
{
ret += snprintf(line + ret, sizeof(line) - ret,
@@ -73,4 +77,12 @@ void sched_dumpstack(pid_t tid)
ret = 0;
}
}
+#else
+ syslog(LOG_EMERG, "backtrace:\n");
+ for (i = 0; i < size; i++)
+ {
+ syslog(LOG_EMERG, "[%2d] [<%p>] %pS\n",
+ tid, address[i], address[i]);
+ }
+#endif
}