Python QUIT processing updates
authorKevin Buettner <kevinb@redhat.com>
Mon, 27 Feb 2023 23:11:37 +0000 (16:11 -0700)
committerKevin Buettner <kevinb@redhat.com>
Mon, 27 Feb 2023 23:20:39 +0000 (16:20 -0700)
commitb940a061c0d549dbe981463414da87cb84a8a9bb
tree53926eb45e331288f2a49431b5e001339221a474
parentb1ffd1124a8c5170a9e06b867a886b1138d28514
Python QUIT processing updates

See the previous patches in this series for the motivation behind
these changes.

This commit contains updates to Python's QUIT handling.  Ideally, we'd
like to throw gdb_exception_forced_quit through the extension
language; I made an attempt to do this for gdb_exception_quit in an
earlier version of this patch, but Pedro pointed out that it is
(almost certainly) not safe to do so.

Still, we definitely don't want to swallow the exception representing
a SIGTERM for GDB, nor do we want to force modules written in the
extension language to have to explicitly handle this case.  Since the
idea is for GDB to cleanup and quit for this exception, we'll simply
call quit_force() just as if the gdb_exception_forced_quit propagation
had managed to make it back to the top level.

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/python/py-finishbreakpoint.c
gdb/python/py-gdb-readline.c
gdb/python/py-symbol.c
gdb/python/py-utils.c
gdb/python/py-value.c