From 3d03f8943b0e2ccdb1ece965065ebd49f14a2968 Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 23 Mar 2023 23:27:37 +0200 Subject: [PATCH] Improve exception message --- Core/Crash/CrashHandler.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Core/Crash/CrashHandler.cpp b/Core/Crash/CrashHandler.cpp index 4a4cb67..8f71db1 100644 --- a/Core/Crash/CrashHandler.cpp +++ b/Core/Crash/CrashHandler.cpp @@ -800,7 +800,13 @@ namespace CrashHandler if (Frame->cs != GDT_USER_CODE && Frame->cs != GDT_USER_DATA) { - debug("Exception in kernel mode (ip: %#lx (%s), cr2: %#lx)", Frame->rip, KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress(Frame->rip) : "No symbol", PageFaultAddress); + if (PageFaultAddress) + debug("Exception in kernel mode (ip: %#lx cr2: %#lx (%s))", + Frame->rip, PageFaultAddress, KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress(Frame->rip) : "No symbol"); + else + debug("Exception in kernel mode (ip: %#lx (%s))", + Frame->rip, KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress(Frame->rip) : "No symbol"); + if (TaskManager) TaskManager->Panic(); ForceUnlock = true; @@ -809,7 +815,12 @@ namespace CrashHandler } else { - debug("Exception in user mode (ip: %#lx (%s), cr2: %#lx)", Frame->rip, KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress(Frame->rip) : "No symbol", PageFaultAddress); + if (PageFaultAddress) + debug("Exception in user mode (ip: %#lx cr2: %#lx (%s))", + Frame->rip, PageFaultAddress, KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress(Frame->rip) : "No symbol"); + else + debug("Exception in user mode (ip: %#lx (%s))", + Frame->rip, KernelSymbolTable ? KernelSymbolTable->GetSymbolFromAddress(Frame->rip) : "No symbol"); CPUData *data = GetCurrentCPU(); if (!data) {