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

Tom de Vries via Gdb-patches
2023-01-12T12:37:26Z

On 1/12/23 02:56, Kevin Buettner wrote:
> This series fixes the failure in gdb.base/gdb-sigterm.exp when
> running in environments with glibc-2.34 or later.
>

I've tested this (with python and guile enabled) on:
- openSUSE Tumbleweed x86_64, where I did see FAIL before, and
this series fixes it
- openSUSE Leap 15.4 x86_64
No problems found.

FWIW, I ran into this when applying:
...
$ git am ~/patches/grouped/eml/*
Applying: Introduce gdb_exception_forced_quit
Applying: Handle gdb SIGTERM by throwing / catching gdb_exception_force_quit
.git/rebase-apply/patch:37: indent with spaces.
{
warning: 1 line adds whitespace errors.
Applying: Catch gdb_exception_error instead of gdb_exception (in many
places)
Applying: Python QUIT processing updates
Applying: Guile QUIT processing updates
Applying: Call quit_force for gdb_exception_forced_quit in
safe_execute_command
Applying: QUIT processing w/ explicit throw for gdb_exception_forced_quit
.git/rebase-apply/patch:17: indent with spaces.
throw;
.git/rebase-apply/patch:46: indent with spaces.
{
.git/rebase-apply/patch:58: indent with spaces.
{
warning: 3 lines add whitespace errors.
Applying: Forced quit cases handled by resetting sync_quit_force_run
.git/rebase-apply/patch:41: indent with spaces.
to newline, so, for this case, reset the quit flag for
warning: 1 line adds whitespace errors.
...

Thanks,
- Tom

> 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(-)
>