From f90b1a24ed0907fc0f9f1c2ba1623b29740c9c9b Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Mon, 7 Sep 2026 11:45:02 +0800 Subject: report: explain exception --- kernel/src/init/int.rs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'kernel/src') diff --git a/kernel/src/init/int.rs b/kernel/src/init/int.rs index 0300d87..2512434 100644 --- a/kernel/src/init/int.rs +++ b/kernel/src/init/int.rs @@ -3,17 +3,16 @@ use x86_64::structures::idt::{InterruptDescriptorTable, InterruptStackFrame}; use crate::printlnk; -static IDT: LazyLock = LazyLock::new(|| { - let mut idt = InterruptDescriptorTable::new(); - idt.breakpoint.set_handler_fn(breakpoint_handler); - idt.double_fault.set_handler_fn(double_fault_handler); - idt -}); +pub static IDT: LazyLock = LazyLock::new( + || { + let mut idt = InterruptDescriptorTable::new(); + idt.breakpoint.set_handler_fn(breakpoint_handler); + idt.double_fault.set_handler_fn(double_fault_handler); + idt + }, +); -extern "x86-interrupt" fn double_fault_handler( - stack_frame: InterruptStackFrame, - error_code: u64, -) -> ! { +extern "x86-interrupt" fn double_fault_handler(stack_frame: InterruptStackFrame, error_code: u64) -> ! { panic!("EXCEPTION: DOUBLE FAULT\n{stack_frame:#?}\nERROR CODE:{error_code}"); } -- cgit v1.2.3