1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#include "aplos.h"
void
panic(void)
{
struct cpu_regs r;
dump_regs(&r);
print(u8"--- PANIC ---\n");
print(u8"rax: %p rbx: %p rcx: %p rdx: %p\n", r.rax, r.rbx, r.rcx, r.rdx);
print(u8"rsi: %p rdi: %p rsp: %p rbp: %p\n", r.rsi, r.rdi, r.rsp, r.rbp);
print(u8"r8: %p r9: %p r10: %p r11: %p\n", r.r9, r.r9, r.r10, r.r11);
print(u8"r12: %p r13: %p r14: %p r15: %p\n", r.r12, r.r13, r.r14, r.r15);
print(u8"rip: %p cr0: %p cr2: %p cr3: %p\n", r.rip, r.cr0, r.cr2, r.cr3);
print(u8"cr4: %p cr8: %p cs: %p ds: %p\n", r.cr4, r.cr8, r.cs, r.ds);
print(u8"ss: %p es: %p fs: %p gs: %p\n", r.ss, r.es, r.fs, r.gs);
print(u8"rflags: %p\n", r.rflags);
halt();
}
|