* 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