diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2013-06-02 09:11:09 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2013-06-02 09:11:09 +0000 |
commit | fa35814af1fe24f596142c993f050f5eb0a74914 (patch) | |
tree | 0a4cb192d7bf2de816f3e9c25fda5aa40a8bc4af | |
parent | 01ab5147dde03719aa21da62f545fd6ac2dce50f (diff) | |
download | newlib-fa35814af1fe24f596142c993f050f5eb0a74914.zip newlib-fa35814af1fe24f596142c993f050f5eb0a74914.tar.gz newlib-fa35814af1fe24f596142c993f050f5eb0a74914.tar.bz2 |
* exceptions.cc (exception::handle): Resurrect accidentally lost
patch from 2009-07-22: Set si_addr according to POSIX for SIGSEGV.
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/exceptions.cc | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index da887a6..3d18cd5 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2013-06-02 Corinna Vinschen <corinna@vinschen.de> + + * exceptions.cc (exception::handle): Resurrect accidentally lost + patch from 2009-07-22: Set si_addr according to POSIX for SIGSEGV. + 2013-05-31 Corinna Vinschen <corinna@vinschen.de> * include/sys/socket.h: Move SHUT_xx definitoins from here... diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index 31d84bd..abb9735 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -753,7 +753,8 @@ exception::handle (EXCEPTION_RECORD *e, exception_list *frame, CONTEXT *in, void } cygwin_exception exc (framep, in, e); si.si_cyg = (void *) &exc; - si.si_addr = (void *) in->_GR(ip); + si.si_addr = (si.si_signo == SIGSEGV || si.si_signo == SIGBUS) + ? (void *) e->ExceptionInformation[1] : (void *) in->_GR(ip); me.incyg++; sig_send (NULL, si, &me); /* Signal myself */ me.incyg--; |