diff --git a/kernel/kernel/IDT.cpp b/kernel/kernel/IDT.cpp index 93491da9..b3fa74c3 100644 --- a/kernel/kernel/IDT.cpp +++ b/kernel/kernel/IDT.cpp @@ -245,6 +245,8 @@ namespace Kernel #endif } + Debug::s_debug_lock.lock(); + if (PageTable::current().get_page_flags(interrupt_stack->ip & PAGE_ADDR_MASK) & PageTable::Flags::Present) { auto* machine_code = (const uint8_t*)interrupt_stack->ip; @@ -293,6 +295,8 @@ namespace Kernel PageTable::current().debug_dump(); Debug::dump_stack_trace(); + Debug::s_debug_lock.unlock(InterruptState::Disabled); + if (tid && Thread::current().is_userspace()) { // TODO: Confirm and fix the exception to signal mappings