From 68faa57a1fd3ad01edeb472027e59378631bf8bb Mon Sep 17 00:00:00 2001
From: FunkyFr3sh <cc.red.alert.1@googlemail.com>
Date: Sun, 2 Oct 2022 12:19:34 +0200
Subject: [PATCH] log filename of faulty module

---
 src/debug.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/debug.c b/src/debug.c
index 14cf67d..aad49ef 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -48,10 +48,22 @@ int dbg_exception_handler(EXCEPTION_POINTERS* exception)
 
     if (exception && exception->ExceptionRecord)
     {
-        TRACE(
-            "Exception at %p (%08X)\n",
+        HMODULE mod = NULL;
+        char filename[MAX_PATH] = { 0 };
+
+        if (GetModuleHandleExA(
+            GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
             exception->ExceptionRecord->ExceptionAddress,
-            exception->ExceptionRecord->ExceptionCode);
+            &mod))
+        {
+            GetModuleFileNameA(mod, filename, sizeof(filename) - 1);
+        }
+
+        TRACE(
+            "Exception at %p (%08X) %s\n",
+            exception->ExceptionRecord->ExceptionAddress,
+            exception->ExceptionRecord->ExceptionCode,
+            filename);
     }
 
     return EXCEPTION_EXECUTE_HANDLER;