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

Message ID 20230112015630.32999-1-kevinb@redhat.com
Headers
Series Fix gdb.base/gdb-sigterm.exp failure/error |

Message

Kevin Buettner Jan. 12, 2023, 1:56 a.m. UTC
  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(-)
  

Comments

Tom de Vries Jan. 12, 2023, 12:37 p.m. UTC | #1
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(-)
>
  
Kevin Buettner Jan. 27, 2023, 10:03 p.m. UTC | #2
On Thu, 12 Jan 2023 13:37:00 +0100
Tom de Vries <tdevries@suse.de> wrote:

> 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!

I've fixed these whitespace problems in my local sources.  I've
also added a "Tested-by" attribution for you to each commit message.

Kevin