forked from Imagelibrary/binutils-gdb
[gdb/python] Use gdbpy_err_fetch::{type,value} as getters
Similar to gdbpy_err_fetch::value, add a getter gdbpy_err_fetch::type, and use both consistently to get gdbpy_err_fetch members m_error_value and m_error_type. Tested on aarch64-linux.
This commit is contained in:
@@ -195,10 +195,11 @@ gdbpy_err_fetch::to_string () const
|
|||||||
Using str (aka PyObject_Str) will fetch the error message from
|
Using str (aka PyObject_Str) will fetch the error message from
|
||||||
gdb.GdbError ("message"). */
|
gdb.GdbError ("message"). */
|
||||||
|
|
||||||
if (m_error_value.get () != nullptr && m_error_value.get () != Py_None)
|
gdbpy_ref<> value = this->value ();
|
||||||
return gdbpy_obj_to_string (m_error_value.get ());
|
if (value.get () != nullptr && value.get () != Py_None)
|
||||||
|
return gdbpy_obj_to_string (value.get ());
|
||||||
else
|
else
|
||||||
return gdbpy_obj_to_string (m_error_type.get ());
|
return gdbpy_obj_to_string (this->type ().get ());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* See python-internal.h. */
|
/* See python-internal.h. */
|
||||||
@@ -206,7 +207,7 @@ gdbpy_err_fetch::to_string () const
|
|||||||
gdb::unique_xmalloc_ptr<char>
|
gdb::unique_xmalloc_ptr<char>
|
||||||
gdbpy_err_fetch::type_to_string () const
|
gdbpy_err_fetch::type_to_string () const
|
||||||
{
|
{
|
||||||
return gdbpy_obj_to_string (m_error_type.get ());
|
return gdbpy_obj_to_string (this->type ().get ());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Convert a GDB exception to the appropriate Python exception.
|
/* Convert a GDB exception to the appropriate Python exception.
|
||||||
|
|||||||
@@ -675,16 +675,24 @@ public:
|
|||||||
|
|
||||||
bool type_matches (PyObject *type) const
|
bool type_matches (PyObject *type) const
|
||||||
{
|
{
|
||||||
return PyErr_GivenExceptionMatches (m_error_type.get (), type);
|
gdbpy_ref<> err_type = this->type ();
|
||||||
|
return PyErr_GivenExceptionMatches (err_type.get (), type);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return a new reference to the exception value object. */
|
/* Return a new reference to the exception value object. */
|
||||||
|
|
||||||
gdbpy_ref<> value ()
|
gdbpy_ref<> value () const
|
||||||
{
|
{
|
||||||
return m_error_value;
|
return m_error_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return a new reference to the exception type object. */
|
||||||
|
|
||||||
|
gdbpy_ref<> type () const
|
||||||
|
{
|
||||||
|
return m_error_type;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
gdbpy_ref<> m_error_type, m_error_value, m_error_traceback;
|
gdbpy_ref<> m_error_type, m_error_value, m_error_traceback;
|
||||||
|
|||||||
Reference in New Issue
Block a user