diff --git a/src/interrupts.rs b/src/interrupts.rs index 1ed361c..095367b 100644 --- a/src/interrupts.rs +++ b/src/interrupts.rs @@ -4,6 +4,7 @@ lazy_static! { static ref IDT: Idt = { let mut idt = Idt::new(); idt.breakpoint.set_handler_fn(breakpoint_handler); + idt.double_fault.set_handler_fn(double_fault_handler); idt }; } @@ -17,3 +18,10 @@ extern "x86-interrupt" fn breakpoint_handler( { println!("EXCEPTION: BREAKPOINT\n{:#?}", stack_frame); } + +extern "x86-interrupt" fn double_fault_handler( + stack_frame: &mut ExceptionStackFrame, _error_code: u64) +{ + println!("\nEXCEPTION: DOUBLE FAULT\n{:#?}", stack_frame); + loop {} +}