diff options
author | Tom de Vries <tdevries@suse.de> | 2024-08-22 09:49:53 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2024-08-22 09:49:53 +0200 |
commit | 365b32b9c7792cb5fb67c658ea28b1c3a7a8ef71 (patch) | |
tree | ba299be3bbeba176ed60e06c8519a9757f6d894d /gdb/python | |
parent | 78125417227bd3f3765ba52d04066f8607d62f44 (diff) | |
download | binutils-365b32b9c7792cb5fb67c658ea28b1c3a7a8ef71.zip binutils-365b32b9c7792cb5fb67c658ea28b1c3a7a8ef71.tar.gz binutils-365b32b9c7792cb5fb67c658ea28b1c3a7a8ef71.tar.bz2 |
[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 <tom@tromey.com>
Diffstat (limited to 'gdb/python')
-rw-r--r-- | gdb/python/py-type.c | 6 |
1 files changed, 5 insertions, 1 deletions
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) |