diff --git a/moon/src/arch/x86_64/interrupts.rs b/moon/src/arch/x86_64/interrupts.rs index 50ab88b1..dc206acf 100644 --- a/moon/src/arch/x86_64/interrupts.rs +++ b/moon/src/arch/x86_64/interrupts.rs @@ -14,11 +14,16 @@ extern "x86-interrupt" fn page_fault_handler(stack_frame: InterruptStackFrame, f try_println!("Page fault at {:#?}\n{:#?}", faulting_address, stack_frame); } +extern "x86-interrupt" fn double_fault_handler(stack_frame: InterruptStackFrame, _error_code: u64) -> ! { + panic!("Double fault!\n{:#?}", stack_frame); +} + pub fn load() { unsafe { IDT.breakpoint.set_handler_fn(breakpoint_handler); IDT.page_fault.set_handler_fn(page_fault_handler); + IDT.double_fault.set_handler_fn(double_fault_handler); IDT.load(); } }