From 53f1f3d4aa7019a159d939b7bd2a27a93d630fda Mon Sep 17 00:00:00 2001 From: Kevin Buettner <kevinb@redhat.com> Date: Mon, 27 Feb 2023 16:11:37 -0700 Subject: 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> --- gdb/guile/scm-value.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gdb/guile/scm-value.c') diff --git a/gdb/guile/scm-value.c b/gdb/guile/scm-value.c index ac948dc..32a9539 100644 --- a/gdb/guile/scm-value.c +++ b/gdb/guile/scm-value.c @@ -21,6 +21,7 @@ conventions, et.al. */ #include "defs.h" +#include "top.h" /* For quit_force(). */ #include "arch-utils.h" #include "charset.h" #include "cp-abi.h" @@ -416,6 +417,10 @@ gdbscm_value_address (SCM self) { address = vlscm_scm_from_value (value_addr (value)); } + catch (const gdb_exception_forced_quit &except) + { + quit_force (NULL, 0); + } catch (const gdb_exception &except) { } -- cgit v1.1