aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/python.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-12-25 11:44:58 -0700
committerTom Tromey <tom@tromey.com>2018-12-27 13:34:39 -0700
commit6ef2312a177ebdfa841e82b515c144975073a501 (patch)
treeba1050399bcbfe2ac09c66ed5670c97a58abe43e /gdb/python/python.c
parentec9c2750b7bab8a55aaf7d2386e809d4e81deb03 (diff)
downloadbinutils-6ef2312a177ebdfa841e82b515c144975073a501.zip
binutils-6ef2312a177ebdfa841e82b515c144975073a501.tar.gz
binutils-6ef2312a177ebdfa841e82b515c144975073a501.tar.bz2
Consolidate some Python exception-printing functions
A few places in the Python code would either call gdbpy_print_stack, or throw a gdb "quit", depending on the pending exception. This patch consolidates these into a helper function. gdb/ChangeLog 2018-12-27 Tom Tromey <tom@tromey.com> * python/python-internal.h (gdbpy_print_stack_or_quit): Declare. * python/py-unwind.c (pyuw_sniffer): Use gdbpy_print_stack_or_quit. * python/py-framefilter.c (throw_quit_or_print_exception): Remove. (gdbpy_apply_frame_filter): Use gdbpy_print_stack_or_quit. * python/python.c (gdbpy_print_stack_or_quit): New function.
Diffstat (limited to 'gdb/python/python.c')
-rw-r--r--gdb/python/python.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/gdb/python/python.c b/gdb/python/python.c
index f790d48..3d0b0a0 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -1268,6 +1268,20 @@ gdbpy_print_stack (void)
}
}
+/* Like gdbpy_print_stack, but if the exception is a
+ KeyboardException, throw a gdb "quit" instead. */
+
+void
+gdbpy_print_stack_or_quit ()
+{
+ if (PyErr_ExceptionMatches (PyExc_KeyboardInterrupt))
+ {
+ PyErr_Clear ();
+ throw_quit ("Quit");
+ }
+ gdbpy_print_stack ();
+}
+
/* Return a sequence holding all the Progspaces. */