From 027b5e0fb4be55a314d2168c92e99772cc80f442 Mon Sep 17 00:00:00 2001 From: Anton Kling Date: Wed, 1 Nov 2023 21:41:54 +0100 Subject: Exceptions: Output CR2 on page fault --- kernel/cpu/idt.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'kernel/cpu') diff --git a/kernel/cpu/idt.c b/kernel/cpu/idt.c index bf0061f..0a5cc77 100644 --- a/kernel/cpu/idt.c +++ b/kernel/cpu/idt.c @@ -84,6 +84,10 @@ __attribute__((interrupt)) void page_fault(registers_t *regs) { kprintf("Error Code: %x\n", regs->error_code); kprintf("Instruction Pointer: %x\n", regs->eip); + volatile uint32_t cr2; + asm volatile("mov %%cr2, %0" : "=r"(cr2)); + kprintf("CR2: %x\n", cr2); + if (regs->error_code & (1 << 0)) kprintf("page-protection violation\n"); else -- cgit v1.2.3