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)
register dump:
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
```
now it is slightly redundant with rip, rsp and rbp being printed twice, but I don't think that's a big deal.