From 365b32b9c7792cb5fb67c658ea28b1c3a7a8ef71 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Thu, 22 Aug 2024 09:49:53 +0200 Subject: [gdb/python] Eliminate catch(...) in type_to_type_object In type_to_type_object we have: ... try { if (type->is_stub ()) type = check_typedef (type); } catch (...) { /* Just ignore failures in check_typedef. */ } ... The catch is supposed to ignore gdb_exception_error, but it ignores any exception. Fix that by only ignoring gdb_exception_error, and handling gdb_exception_quit / gdb_exception_forced_quit using GDB_PY_HANDLE_EXCEPTION. Tested on x86_64-linux. Approved-By: Tom Tromey --- gdb/python/py-type.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c index 863e6f6..c13b861 100644 --- a/gdb/python/py-type.c +++ b/gdb/python/py-type.c @@ -1465,10 +1465,14 @@ type_to_type_object (struct type *type) if (type->is_stub ()) type = check_typedef (type); } - catch (...) + catch (const gdb_exception_error &) { /* Just ignore failures in check_typedef. */ } + catch (const gdb_exception &except) + { + GDB_PY_HANDLE_EXCEPTION (except); + } type_obj = PyObject_New (type_object, &type_object_type); if (type_obj) -- cgit v1.1