Date: Thu, 25 Aug 2022 18:16:26 GMT From: Mateusz Guzik <mjg@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: e621cb0be2a3 - main - amd64: dump standard registers when crashing Message-ID: <202208251816.27PIGQ4r004060@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=e621cb0be2a32938844c2e1fdb085dc21620334b commit e621cb0be2a32938844c2e1fdb085dc21620334b Author: Mateusz Guzik <mjg@FreeBSD.org> AuthorDate: 2022-08-25 17:30:31 +0000 Commit: Mateusz Guzik <mjg@FreeBSD.org> CommitDate: 2022-08-25 17:33:07 +0000 amd64: dump standard registers when crashing Sample output: Fatal trap 12: page fault while in kernel mode cpuid = 1; apic id = 01 fault virtual address = 0x2 fault code = supervisor write data, page not present instruction pointer = 0x20:0xffffffff80556853 stack pointer = 0x28:0xffffffff8141bf50 frame pointer = 0x28:0xffffffff8141bfa0 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 0 (swapper) rdi: fffff80002c9c400 rsi: ffffffff80b89183 rdx: 0 rcx: 2 r8: fe r9: 1 rax: fffff80002c9c400 rbx: 1 rbp: ffffffff8141bfa0 r10: 0 r11: ffffffff80b97f8c r12: 0 r13: 0 r14: 0 r15: 0 trap number = 12 panic: page fault cpuid = 1 time = 1 Reviewed by: kib Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D36348 --- sys/amd64/amd64/trap.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index a94722851ce1..39a2ef1d373f 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -931,6 +931,17 @@ trap_fatal(struct trapframe *frame, vm_offset_t eva) printf("current process = %d (%s)\n", curproc->p_pid, curthread->td_name); + printf("rdi: %16lx rsi: %16lx rdx: %16lx\n", frame->tf_rdi, + frame->tf_rsi, frame->tf_rdx); + printf("rcx: %16lx r8: %16lx r9: %16lx\n", frame->tf_rcx, + frame->tf_r8, frame->tf_r9); + printf("rax: %16lx rbx: %16lx rbp: %16lx\n", frame->tf_rax, + frame->tf_rbx, frame->tf_rbp); + printf("r10: %16lx r11: %16lx r12: %16lx\n", frame->tf_r10, + frame->tf_r11, frame->tf_r12); + printf("r13: %16lx r14: %16lx r15: %16lx\n", frame->tf_r13, + frame->tf_r14, frame->tf_r15); + #ifdef KDB if (debugger_on_trap) { kdb_why = KDB_WHY_TRAP;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202208251816.27PIGQ4r004060>