Austin English : ntdll: Make sure flags are preserved in raise_trap_exception().

Alexandre Julliard julliard at winehq.org
Tue Apr 15 14:50:33 CDT 2014


Module: wine
Branch: master
Commit: 1a988fa46580250bd7640f8f0f3c4c06ea5053c3
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1a988fa46580250bd7640f8f0f3c4c06ea5053c3

Author: Austin English <austinenglish at gmail.com>
Date:   Sat Apr 12 13:20:55 2014 -0700

ntdll: Make sure flags are preserved in raise_trap_exception().

---

 dlls/ntdll/signal_i386.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
index 63bf088..5f8b8fd 100644
--- a/dlls/ntdll/signal_i386.c
+++ b/dlls/ntdll/signal_i386.c
@@ -1868,9 +1868,10 @@ static void WINAPI raise_trap_exception( EXCEPTION_RECORD *rec, CONTEXT *context
         if( !(context->EFlags & 0x100) || (ntdll_get_thread_data()->dr7 & 0xff) )
         {
             /* (possible) hardware breakpoint, fetch the debug registers */
+            DWORD saved_flags = context->ContextFlags;
             context->ContextFlags = CONTEXT_DEBUG_REGISTERS;
             NtGetContextThread(GetCurrentThread(), context);
-            context->ContextFlags |= CONTEXT_FULL;  /* restore flags */
+            context->ContextFlags |= saved_flags;  /* restore flags */
         }
 
         context->EFlags &= ~0x100;  /* clear single-step flag */




More information about the wine-cvs mailing list