diff options
author | Kevin Buettner <kevinb@redhat.com> | 2023-02-27 16:11:37 -0700 |
---|---|---|
committer | Kevin Buettner <kevinb@redhat.com> | 2023-02-27 16:20:39 -0700 |
commit | 53f1f3d4aa7019a159d939b7bd2a27a93d630fda (patch) | |
tree | 5ebbd72f3dc6866bd22b5da6c6cec49ca26fc9c2 /gdb/guile/scm-pretty-print.c | |
parent | b940a061c0d549dbe981463414da87cb84a8a9bb (diff) | |
download | binutils-53f1f3d4aa7019a159d939b7bd2a27a93d630fda.zip binutils-53f1f3d4aa7019a159d939b7bd2a27a93d630fda.tar.gz binutils-53f1f3d4aa7019a159d939b7bd2a27a93d630fda.tar.bz2 |
Guile QUIT processing updates
This commit contains QUIT processing updates for GDB's Guile support.
As with the Python updates, we don't want to permit this code to
swallow the exception, gdb_exception_forced_quit, which is associated
with GDB receiving a SIGTERM.
I've adopted the same solution that I used for Python; whereever
a gdb_exception is caught in try/catch code in the Guile extension
language support, a catch for gdb_exception_forced_quit has been
added; this catch block will simply call quit_force(), which will
cause the necessary cleanups to occur followed by GDB exiting.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=26761
Tested-by: Tom de Vries <tdevries@suse.de>
Approved-By: Pedro Alves <pedro@palves.net>
Diffstat (limited to 'gdb/guile/scm-pretty-print.c')
-rw-r--r-- | gdb/guile/scm-pretty-print.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/guile/scm-pretty-print.c b/gdb/guile/scm-pretty-print.c index e172a14..ae56758 100644 --- a/gdb/guile/scm-pretty-print.c +++ b/gdb/guile/scm-pretty-print.c @@ -21,6 +21,7 @@ conventions, et.al. */ #include "defs.h" +#include "top.h" /* For quit_force(). */ #include "charset.h" #include "symtab.h" /* Needed by language.h. */ #include "language.h" @@ -558,6 +559,10 @@ ppscm_pretty_print_one_value (SCM printer, struct value **out_value, (_("invalid result from pretty-printer to-string"), result); } } + catch (const gdb_exception_forced_quit &except) + { + quit_force (NULL, 0); + } catch (const gdb_exception &except) { } |