* exceptions.cc (exception::handle): Eliminate buggy recursed value and just

check if we're exiting.
This commit is contained in:
Christopher Faylor 2013-03-01 15:48:14 +00:00
parent a4239bd48d
commit aad4a3c932
2 changed files with 8 additions and 3 deletions

View 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> 2013-02-26 Corinna Vinschen <corinna@vinschen.de>
* include/pthread.h (pthread_atfork): Add missing declaration. * include/pthread.h (pthread_atfork): Add missing declaration.

View File

@ -469,7 +469,6 @@ int
exception::handle (EXCEPTION_RECORD *e, exception_list *frame, CONTEXT *in, void *) exception::handle (EXCEPTION_RECORD *e, exception_list *frame, CONTEXT *in, void *)
{ {
static bool NO_COPY debugging; static bool NO_COPY debugging;
static int NO_COPY recursed;
_cygtls& me = _my_tls; _cygtls& me = _my_tls;
if (debugging && ++debugging < 500000) 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. /* Another exception could happen while tracing or while exiting.
Only do this once. */ Only do this once. */
if (recursed++) if (exit_state >= ES_SIGNAL_EXIT
api_fatal ("Error while dumping state (probably corrupted stack)"); && (NTSTATUS) e->ExceptionCode != STATUS_CONTROL_C_EXIT)
api_fatal ("Exception during process exit");
else if (!try_to_debug (0)) else if (!try_to_debug (0))
rtl_unwind (frame, e); rtl_unwind (frame, e);
else else