[winedbg] Don't ever pass a EH_STACK_INVALID exception

Glenn Wurster gwurster at scs.carleton.ca
Mon Aug 22 14:21:53 CDT 2005


EH_STACK_INVALID exceptions can't be delivered to the application,
therefore the debugger should not pass on them, even if they are first
chance exceptions.

Changelog:
   Don't pass on EH_STACK_INVALID exceptions.

Glenn.

? programs/winedbg/.nfs000387c800002fa6
Index: programs/winedbg/winedbg.c
===================================================================
RCS file: /home/wine/wine/programs/winedbg/winedbg.c,v
retrieving revision 1.37
diff -u -r1.37 winedbg.c
--- programs/winedbg/winedbg.c	7 Jul 2005 12:08:42 -0000	1.37
+++ programs/winedbg/winedbg.c	22 Aug 2005 19:10:26 -0000
@@ -38,7 +38,7 @@
  *        for that)
  *      + set a mode where winedbg would start (postmortem debugging) from a minidump
  * - CPU adherence
- *      + we always assume the stack grows has an i386 (ie downwards)
+ *      + we always assume the stack grows as on i386 (ie downwards)
  * - UI
  *      + enable back the limited output (depth of structure printing and number of 
  *        lines)
@@ -609,7 +609,8 @@
         return DBG_CONTINUE;
     }
 
-    if (first_chance && !is_debug && !DBG_IVAR(BreakOnFirstChance))
+    if (first_chance && !is_debug && !DBG_IVAR(BreakOnFirstChance) &&
+	!(rec->ExceptionFlags & EH_STACK_INVALID))
     {
         /* pass exception to program except for debug exceptions */
         return DBG_EXCEPTION_NOT_HANDLED;
@@ -725,6 +726,9 @@
             dbg_printf("0x%08lx", rec->ExceptionCode);
             break;
         }
+    }
+    if( (rec->ExceptionFlags & EH_STACK_INVALID) ) {
+        dbg_printf( ", invalid program stack" );
     }
 
     if (dbg_action_mode == automatic_mode)



More information about the wine-patches mailing list