[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>
This commit is contained in:
Tom de Vries
2024-08-22 09:49:53 +02:00
parent 7812541722
commit 365b32b9c7

View File

@@ -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)