[PATCH v4 0/8] Fix gdb.base/gdb-sigterm.exp failure/error

Kevin Buettner via Gdb-patches
2023-01-12T01:57:23Z

This series fixes the failure in gdb.base/gdb-sigterm.exp when
running in environments with glibc-2.34 or later.

It addresses Pedro's concerns regarding the v3 series:

https://sourceware.org/pipermail/gdb-patches/2022-February/186150.html

Patches 3, 6, and 7 from the earlier series has changed as follows:

Patch 3 / "Catch gdb_exception_error instead of gdb_exception (in many
places)" no longer contains a change for safe_execute_command(). This
is a tricky case; I've reworked it and moved it into its own commit
titled "Call quit_force for gdb_exception_forced_quit in
safe_execute_command".

Patch 6 / "QUIT processing w/ explicit throw for
gdb_exception_forced_quit" no longer contains changes to
gdb/tui/tui-io.c. These changes have been moved to patch 8 (which
was #7 in the v3 series) since the technique used for circumventing
the problem with not being able to do a throw are the same for both.

Patch 7 (from v3) / "Handle QUIT processing in the scoped_switch_fork_info
destructor" is now patch 8 in v4. It's been retitled as "Forced quit cases
handled by resetting sync_quit_force_run" It contains changes for the
destructor as well as tui_getc().

Patch 6 (v4) / "Call quit_force for gdb_exception_forced_quit in
safe_execute_command" is a new patch containing a rework of changes
to safe_execute_command that was previously in Patch 3.

Kevin Buettner (8):
Introduce gdb_exception_forced_quit
Handle gdb SIGTERM by throwing / catching gdb_exception_force_quit
Catch gdb_exception_error instead of gdb_exception (in many places)
Python QUIT processing updates
Guile QUIT processing updates
Call quit_force for gdb_exception_forced_quit in safe_execute_command
QUIT processing w/ explicit throw for gdb_exception_forced_quit
Forced quit cases handled by resetting sync_quit_force_run

gdb/ada-lang.c | 2 +-
gdb/breakpoint.c | 8 ++++----
gdb/cli/cli-interp.c | 11 +++++++++++
gdb/event-top.c | 2 ++
gdb/guile/guile-internal.h | 5 +++++
gdb/guile/scm-pretty-print.c | 5 +++++
gdb/guile/scm-type.c | 5 +++++
gdb/guile/scm-value.c | 5 +++++
gdb/i386-linux-tdep.c | 2 +-
gdb/inf-loop.c | 2 +-
gdb/infcmd.c | 2 +-
gdb/infrun.c | 2 +-
gdb/jit.c | 2 +-
gdb/linux-fork.c | 13 +++++++++++++
gdb/main.c | 12 ++++++++++++
gdb/mi/mi-cmd-break.c | 2 +-
gdb/mi/mi-interp.c | 2 +-
gdb/mi/mi-main.c | 4 ++++
gdb/objc-lang.c | 2 +-
gdb/parse.c | 2 +-
gdb/printcmd.c | 2 +-
gdb/python/py-finishbreakpoint.c | 5 +++++
gdb/python/py-gdb-readline.c | 4 ++++
gdb/python/py-symbol.c | 5 +++++
gdb/python/py-utils.c | 3 +++
gdb/python/py-value.c | 5 +++++
gdb/record-btrace.c | 2 +-
gdb/record-full.c | 2 +-
gdb/remote-fileio.c | 15 ++++++++++-----
gdb/solib.c | 2 +-
gdb/sparc64-linux-tdep.c | 2 +-
gdb/symfile-mem.c | 2 +-
gdb/top.h | 2 +-
gdb/tui/tui-io.c | 9 +++++++++
gdb/tui/tui.c | 4 ++++
gdb/utils.c | 2 +-
gdbsupport/common-exceptions.cc | 14 ++++++++++++++
gdbsupport/common-exceptions.h | 22 +++++++++++++++++++++-
38 files changed, 164 insertions(+), 28 deletions(-)

--
2.34.3