Skip site navigation (1)Skip section navigation (2)
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>