git: 791bfa60e8ac - main - riscv: decode syscall in ddb backtrace
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 03 Oct 2022 16:56:45 UTC
The branch main has been updated by mhorne:
URL: https://cgit.FreeBSD.org/src/commit/?id=791bfa60e8ac85381d449bae5caa0999950a7039
commit 791bfa60e8ac85381d449bae5caa0999950a7039
Author: Mitchell Horne <mhorne@FreeBSD.org>
AuthorDate: 2022-10-02 22:47:24 +0000
Commit: Mitchell Horne <mhorne@FreeBSD.org>
CommitDate: 2022-10-03 16:49:54 +0000
riscv: decode syscall in ddb backtrace
This presents the existing information in a slightly more readable way.
Reviewed by: jrtc27, markj, jhb
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D36565
---
sys/riscv/riscv/db_trace.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/sys/riscv/riscv/db_trace.c b/sys/riscv/riscv/db_trace.c
index 56508464e7c6..ef8698917021 100644
--- a/sys/riscv/riscv/db_trace.c
+++ b/sys/riscv/riscv/db_trace.c
@@ -92,13 +92,18 @@ db_stack_trace_cmd(struct thread *td, struct unwind_state *frame)
break;
}
- if ((tf->tf_scause & SCAUSE_INTR) != 0)
+ if ((tf->tf_scause & SCAUSE_INTR) != 0) {
db_printf("--- interrupt %ld\n",
tf->tf_scause & SCAUSE_CODE);
- else
+ } else if (tf->tf_scause == SCAUSE_ECALL_USER) {
+ db_printf("--- syscall");
+ db_decode_syscall(td->td_sa.code, td);
+ db_printf("\n");
+ } else {
db_printf("--- exception %ld, tval = %#lx\n",
tf->tf_scause & SCAUSE_CODE,
tf->tf_stval);
+ }
frame->sp = tf->tf_sp;
frame->fp = tf->tf_s[0];
frame->pc = tf->tf_sepc;