From 83082b6a68f64eb8c4bc4a0d972514813d26b320 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 28 Feb 2008 17:57:42 +0000 Subject: * exceptions.cc (_cygtls::handle_exceptions): When being debugged, leave through SetThreadContext, too, to keep exception handler stack intact. --- winsup/cygwin/exceptions.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'winsup/cygwin/exceptions.cc') diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index 999094d30..3b4184db0 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -647,7 +647,7 @@ _cygtls::handle_exceptions (EXCEPTION_RECORD *e, exception_list *frame, CONTEXT if (try_to_debug (0)) { debugging = true; - return 0; + goto out; } open_stackdumpfile (); @@ -692,7 +692,7 @@ _cygtls::handle_exceptions (EXCEPTION_RECORD *e, exception_list *frame, CONTEXT to the caller without visiting any of the helpful code installed prior to this function. This should work ok, since a longjmp() out of here has to work if linux signal semantics are to be maintained. */ - +out: SetThreadContext (GetCurrentThread (), in); return 0; /* Never actually returns. This is just to keep gcc happy. */ } -- cgit v1.2.3