Eric Pouech : ntdll: Made DBG_EXCEPTION_HANDLED a synonym of DBG_CONTINUE for exception handlers.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Dec 20 04:56:27 CST 2005


Module: wine
Branch: refs/heads/master
Commit: fe36b7baca253f1e95cc790b84308969bd6ecc60
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=fe36b7baca253f1e95cc790b84308969bd6ecc60

Author: Eric Pouech <eric.pouech at wanadoo.fr>
Date:   Tue Dec 20 11:47:27 2005 +0100

ntdll: Made DBG_EXCEPTION_HANDLED a synonym of DBG_CONTINUE for exception handlers.

---

 dlls/ntdll/exception.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c
index 972ba0a..ee1bf9c 100644
--- a/dlls/ntdll/exception.c
+++ b/dlls/ntdll/exception.c
@@ -185,7 +185,7 @@ void wait_suspend( CONTEXT *context )
  *
  * Send an EXCEPTION_DEBUG_EVENT event to the debugger.
  */
-static int send_debug_event( EXCEPTION_RECORD *rec, int first_chance, CONTEXT *context )
+static NTSTATUS send_debug_event( EXCEPTION_RECORD *rec, int first_chance, CONTEXT *context )
 {
     int ret;
     HANDLE handle = 0;
@@ -269,6 +269,7 @@ void WINAPI __regs_RtlRaiseException( EX
     EXCEPTION_REGISTRATION_RECORD *frame, *dispatch, *nested_frame;
     EXCEPTION_RECORD newrec;
     DWORD res, c;
+    NTSTATUS status;
 
     TRACE( "code=%lx flags=%lx addr=%p\n", rec->ExceptionCode, rec->ExceptionFlags, rec->ExceptionAddress );
     for (c=0; c<rec->NumberParameters; c++) TRACE(" info[%ld]=%08lx\n", c, rec->ExceptionInformation[c]);
@@ -295,7 +296,8 @@ void WINAPI __regs_RtlRaiseException( EX
     }
 #endif
 
-    if (send_debug_event( rec, TRUE, context ) == DBG_CONTINUE) return;  /* continue execution */
+    status = send_debug_event( rec, TRUE, context );
+    if (status == DBG_CONTINUE || status == DBG_EXCEPTION_HANDLED) return;  /* continue execution */
 
     if (call_vectored_handlers( rec, context ) == EXCEPTION_CONTINUE_EXECUTION) return;
 




More information about the wine-cvs mailing list