]> sourceware.org Git - newlib-cygwin.git/commitdiff
* exceptions.cc (exception::handle): Eliminate buggy recursed value and just
authorChristopher Faylor <me@cgf.cx>
Fri, 1 Mar 2013 15:48:14 +0000 (15:48 +0000)
committerChristopher Faylor <me@cgf.cx>
Fri, 1 Mar 2013 15:48:14 +0000 (15:48 +0000)
check if we're exiting.

winsup/cygwin/ChangeLog
winsup/cygwin/exceptions.cc

index 81ecf55c7203682a20525f5311daa589b79edb7c..66a1cc6a8e02773f77694265f26f256a7103c5e9 100644 (file)
@@ -1,3 +1,8 @@
+2013-03-01  Christopher Faylor  <me.cygwin2013@cgf.cx>
+
+       * exceptions.cc (exception::handle): Eliminate buggy recursed value and
+       just check if we're exiting.
+
 2013-02-26  Corinna Vinschen  <corinna@vinschen.de>
 
        * include/pthread.h (pthread_atfork): Add missing declaration.
index b3e327779844b7a8a2b15aa52e36022ce7e67938..c7747388cd4045f900b0c8224ca8a5f1063b9d23 100644 (file)
@@ -469,7 +469,6 @@ int
 exception::handle (EXCEPTION_RECORD *e, exception_list *frame, CONTEXT *in, void *)
 {
   static bool NO_COPY debugging;
-  static int NO_COPY recursed;
   _cygtls& me = _my_tls;
 
   if (debugging && ++debugging < 500000)
@@ -616,8 +615,9 @@ exception::handle (EXCEPTION_RECORD *e, exception_list *frame, CONTEXT *in, void
 
   /* Another exception could happen while tracing or while exiting.
      Only do this once.  */
-  if (recursed++)
-    api_fatal ("Error while dumping state (probably corrupted stack)");
+  if (exit_state >= ES_SIGNAL_EXIT
+      && (NTSTATUS) e->ExceptionCode != STATUS_CONTROL_C_EXIT)
+    api_fatal ("Exception during process exit");
   else if (!try_to_debug (0))
     rtl_unwind (frame, e);
   else
This page took 0.033897 seconds and 5 git commands to generate.