Module Name: src Committed By: riastradh Date: Sun Jun 26 22:18:30 UTC 2022
Modified Files: src/sys/arch/amd64/amd64: db_machdep.c Log Message: amd64: Print effective syscall number for SYS_syscall stack traces. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/amd64/amd64/db_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/amd64/amd64/db_machdep.c diff -u src/sys/arch/amd64/amd64/db_machdep.c:1.9 src/sys/arch/amd64/amd64/db_machdep.c:1.10 --- src/sys/arch/amd64/amd64/db_machdep.c:1.9 Mon Dec 13 01:25:29 2021 +++ src/sys/arch/amd64/amd64/db_machdep.c Sun Jun 26 22:18:30 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: db_machdep.c,v 1.9 2021/12/13 01:25:29 chs Exp $ */ +/* $NetBSD: db_machdep.c,v 1.10 2022/06/26 22:18:30 riastradh Exp $ */ /* * Mach Operating System @@ -26,7 +26,7 @@ * rights to redistribute these changes. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: db_machdep.c,v 1.9 2021/12/13 01:25:29 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: db_machdep.c,v 1.10 2022/06/26 22:18:30 riastradh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -111,6 +111,7 @@ db_nextframe(long **nextframe, long **re struct x86_64_frame *fp; struct intrframe *ifp; int traptype, trapno, err, i; + db_expr_t syscallno; switch (is_trap) { case NONE: @@ -127,8 +128,16 @@ db_nextframe(long **nextframe, long **re case SYSCALL: tf = (struct trapframe *)argp; - (*pr)("--- syscall (number %"DDB_EXPR_FMT"u) ---\n", - db_get_value((long)&tf->tf_rax, 8, false)); + syscallno = db_get_value((long)&tf->tf_rax, 8, false); + if (syscallno == SYS_syscall) { + syscallno = db_get_value((long)&tf->tf_rdi, 8, false); + (*pr)("--- syscall (number %"DDB_EXPR_FMT"u" + " via SYS_syscall) ---\n", + syscallno); + } else { + (*pr)("--- syscall (number %"DDB_EXPR_FMT"u) ---\n", + syscallno); + } return 0; case TRAP: