* exceptions.cc (_cygtls::handle_exceptions): When being debugged,

leave through SetThreadContext, too, to keep exception handler stack
	intact.
This commit is contained in:
Corinna Vinschen 2008-02-28 17:57:42 +00:00
parent 5003a3d1c5
commit 83082b6a68
2 changed files with 8 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2008-02-28 Corinna Vinschen <corinna@vinschen.de>
* exceptions.cc (_cygtls::handle_exceptions): When being debugged,
leave through SetThreadContext, too, to keep exception handler stack
intact.
2008-02-28 Corinna Vinschen <corinna@vinschen.de>
* exceptions.cc (open_stackdumpfile): Add comments.

View File

@ -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. */
}