From 559e7e5056e0671f2f248e1f9c2af849bfe3e64b Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 6 Jan 2020 11:51:54 +0000 Subject: Improve process exit status macros on MinGW When a Windows program is terminated by a fatal exception, its exit code is the value of that exception, as defined by the various EXCEPTION_* symbols in the Windows API headers. This commit emulates WTERMSIG etc. by translating the fatal exception codes to more-or-less equivalent Posix signals. gdb/ChangeLog: 2020-01-06 Eli Zaretskii Pedro Alves * Makefile.in (COMMON_SFILES): Add gdbsupport/gdb_wait.c. * windows-tdep.c: New enumeration of WINDOWS_SIG* signals. (windows_gdb_signal_to_target): New function, uses the above enumeration to convert GDB internal signal codes to equivalent Windows codes. (windows_init_abi): Call set_gdbarch_gdb_signal_to_target. * windows-nat.c: Include "gdb_wait.h". (get_windows_debug_event): Extract the fatal exception from the exit status and convert to the equivalent Posix signal number. * cli/cli-cmds.c (exit_status_set_internal_vars): Account for the possibility that WTERMSIG returns GDB_SIGNAL_UNKNOWN. * gdbsupport/gdb_wait.c: New file, implements windows_status_to_termsig. * gdbsupport/gdb_wait.h (WIFEXITED, WIFSIGNALED, WEXITSTATUS) (WTERMSIG) [__MINGW32__]: Separate definitions for MinGW. gdb/gdbserver/ChangeLog: 2020-01-06 Eli Zaretskii Pedro Alves * win32-low.c (get_child_debug_event): Extract the fatal exception from the exit status and convert to the equivalent Posix signal number. (win32_wait): Allow TARGET_WAITKIND_SIGNALLED status as well. * Makefile.in (OBS, SFILES): Add gdb_wait.[co]. --- gdb/Makefile.in | 1 + 1 file changed, 1 insertion(+) (limited to 'gdb/Makefile.in') diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 448a495..0bc8142 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -986,6 +986,7 @@ COMMON_SFILES = \ gdbsupport/gdb-dlfcn.c \ gdbsupport/gdb_tilde_expand.c \ gdbsupport/gdb_vecs.c \ + gdbsupport/gdb_wait.c \ gdbsupport/netstuff.c \ gdbsupport/new-op.c \ gdbsupport/pathstuff.c \ -- cgit v1.1