diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 493fa80e1..9f8c0fcfc 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2011-11-03 Christopher Faylor + + * sigproc.cc (child_info::sync): Report on exit code in strace output. + (child_info::proc_retry): Don't consider STATUS_ACCESS_VIOLATION as a + restartable event. + 2011-11-03 Christopher Faylor * sigproc.cc (child_info_spawn::reattach_children): Avoid issuing an diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index fda9bc014..dcb52733b 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -936,7 +936,8 @@ child_info::sync (pid_t pid, HANDLE& hProcess, DWORD howlong) hProcess = NULL; } } - sigproc_printf ("pid %u, WFMO returned %d, res %d", pid, x, res); + sigproc_printf ("pid %u, WFMO returned %d, exit_code %p, res %d", pid, x, + exit_code, res); } return res; } @@ -946,13 +947,14 @@ child_info::proc_retry (HANDLE h) { if (!exit_code) return EXITCODE_OK; + sigproc_printf ("exit_code %p", exit_code); switch (exit_code) { case STILL_ACTIVE: /* shouldn't happen */ sigproc_printf ("STILL_ACTIVE? How'd we get here?"); break; case STATUS_DLL_NOT_FOUND: - return exit_code; + case STATUS_ACCESS_VIOLATION: case STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION: /* pseudo-reloc.c specific */ return exit_code; case STATUS_CONTROL_C_EXIT: