From 30ecf517e42d173f93f1e86829d397b27b96f274 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Fri, 5 Feb 2021 10:21:29 +0100 Subject: [PATCH] ntdll: Print a warning for debug print exceptions. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: RĂ©mi Bernon Signed-off-by: Alexandre Julliard --- dlls/ntdll/signal_arm.c | 8 ++++++++ dlls/ntdll/signal_arm64.c | 8 ++++++++ dlls/ntdll/signal_i386.c | 8 ++++++++ dlls/ntdll/signal_x86_64.c | 8 ++++++++ 4 files changed, 32 insertions(+) diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c index f4da2e5c71d..1b98dd5cc70 100644 --- a/dlls/ntdll/signal_arm.c +++ b/dlls/ntdll/signal_arm.c @@ -164,6 +164,14 @@ NTSTATUS WINAPI KiUserExceptionDispatcher( EXCEPTION_RECORD *rec, CONTEXT *conte { WARN( "Thread %04x renamed to %s\n", (DWORD)rec->ExceptionInformation[2], debugstr_a((char *)rec->ExceptionInformation[1]) ); } + else if (rec->ExceptionCode == DBG_PRINTEXCEPTION_C) + { + WARN( "%s\n", debugstr_an((char *)rec->ExceptionInformation[1], rec->ExceptionInformation[0] - 1) ); + } + else if (rec->ExceptionCode == DBG_PRINTEXCEPTION_WIDE_C) + { + WARN( "%s\n", debugstr_wn((WCHAR *)rec->ExceptionInformation[1], rec->ExceptionInformation[0] - 1) ); + } else { TRACE( " r0=%08x r1=%08x r2=%08x r3=%08x r4=%08x r5=%08x\n", diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c index 88e31d88f7b..078fa947c42 100644 --- a/dlls/ntdll/signal_arm64.c +++ b/dlls/ntdll/signal_arm64.c @@ -505,6 +505,14 @@ NTSTATUS WINAPI KiUserExceptionDispatcher( EXCEPTION_RECORD *rec, CONTEXT *conte { WARN( "Thread %04x renamed to %s\n", (DWORD)rec->ExceptionInformation[2], debugstr_a((char *)rec->ExceptionInformation[1]) ); } + else if (rec->ExceptionCode == DBG_PRINTEXCEPTION_C) + { + WARN( "%s\n", debugstr_an((char *)rec->ExceptionInformation[1], rec->ExceptionInformation[0] - 1) ); + } + else if (rec->ExceptionCode == DBG_PRINTEXCEPTION_WIDE_C) + { + WARN( "%s\n", debugstr_wn((WCHAR *)rec->ExceptionInformation[1], rec->ExceptionInformation[0] - 1) ); + } else { TRACE(" x0=%016lx x1=%016lx x2=%016lx x3=%016lx\n", diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c index a570be10024..6ec696931e9 100644 --- a/dlls/ntdll/signal_i386.c +++ b/dlls/ntdll/signal_i386.c @@ -196,6 +196,14 @@ NTSTATUS WINAPI dispatch_exception( EXCEPTION_RECORD *rec, CONTEXT *context ) { WARN( "Thread %04x renamed to %s\n", (DWORD)rec->ExceptionInformation[2], debugstr_a((char *)rec->ExceptionInformation[1]) ); } + else if (rec->ExceptionCode == DBG_PRINTEXCEPTION_C) + { + WARN( "%s\n", debugstr_an((char *)rec->ExceptionInformation[1], rec->ExceptionInformation[0] - 1) ); + } + else if (rec->ExceptionCode == DBG_PRINTEXCEPTION_WIDE_C) + { + WARN( "%s\n", debugstr_wn((WCHAR *)rec->ExceptionInformation[1], rec->ExceptionInformation[0] - 1) ); + } else { TRACE(" eax=%08x ebx=%08x ecx=%08x edx=%08x esi=%08x edi=%08x\n", diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c index 7a3fd4be204..df133d6fce9 100644 --- a/dlls/ntdll/signal_x86_64.c +++ b/dlls/ntdll/signal_x86_64.c @@ -542,6 +542,14 @@ NTSTATUS WINAPI dispatch_exception( EXCEPTION_RECORD *rec, CONTEXT *context ) { WARN( "Thread %04x renamed to %s\n", (DWORD)rec->ExceptionInformation[2], debugstr_a((char *)rec->ExceptionInformation[1]) ); } + else if (rec->ExceptionCode == DBG_PRINTEXCEPTION_C) + { + WARN( "%s\n", debugstr_an((char *)rec->ExceptionInformation[1], rec->ExceptionInformation[0] - 1) ); + } + else if (rec->ExceptionCode == DBG_PRINTEXCEPTION_WIDE_C) + { + WARN( "%s\n", debugstr_wn((WCHAR *)rec->ExceptionInformation[1], rec->ExceptionInformation[0] - 1) ); + } else { TRACE(" rax=%016lx rbx=%016lx rcx=%016lx rdx=%016lx\n",