diff options
author | Christopher Faylor <me@cgf.cx> | 2011-11-05 22:47:39 +0400 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2011-11-05 22:47:39 +0400 |
commit | f6ba9446edf3bd60867a96d545e23f36fd06f7f4 (patch) | |
tree | da780615ae4279541788de48f7b153f1e286a317 /winsup | |
parent | cd561fdb8be7cf57d88626a1ef0003db75bebe72 (diff) |
* pinfo.cc (status_exit): Recognize STATUS_ILLEGAL_INSTRUCTION.
(child_info::proc_retry): Ditto.
Diffstat (limited to 'winsup')
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/pinfo.cc | 3 | ||||
-rw-r--r-- | winsup/cygwin/sigproc.cc | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index cd9cdf5ea..cd6081340 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,10 @@ 2011-11-05 Christopher Faylor <me.cygwin2011@cgf.cx> + * pinfo.cc (status_exit): Recognize STATUS_ILLEGAL_INSTRUCTION. + (child_info::proc_retry): Ditto. + +2011-11-05 Christopher Faylor <me.cygwin2011@cgf.cx> + * pinfo.cc (status_exit): Return complete error code. Handle STATUS_ACCESS_VIOLATION correctly. (pinfo::set_exit_code): Set self->exitcode directly from status_exit. diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc index 83f231d64..26739ddbe 100644 --- a/winsup/cygwin/pinfo.cc +++ b/winsup/cygwin/pinfo.cc @@ -140,6 +140,9 @@ status_exit (DWORD x) case STATUS_ACCESS_VIOLATION: x = SIGSEGV; break; + case STATUS_ILLEGAL_INSTRUCTION: + x = SIGILL; + break; default: debug_printf ("*** STATUS_%p\n", x); x = 127 << 8; diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index be570c496..f31081044 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -960,6 +960,7 @@ child_info::proc_retry (HANDLE h) break; case STATUS_DLL_NOT_FOUND: case STATUS_ACCESS_VIOLATION: + case STATUS_ILLEGAL_INSTRUCTION: case STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION: /* pseudo-reloc.c specific */ return exit_code; case STATUS_CONTROL_C_EXIT: |