* exceptions.cc (_cygtls::handle_exceptions): When being debugged,
leave through SetThreadContext, too, to keep exception handler stack intact.
This commit is contained in:
parent
5003a3d1c5
commit
83082b6a68
@ -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.
|
||||
|
@ -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. */
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user