From b1abf8b1b93b5ccdcd400b925dd9046b80f0c32b Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Sat, 9 Mar 2024 16:13:10 +0100 Subject: [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. --- gdb/python/py-utils.c | 9 +++++---- gdb/python/python-internal.h | 12 ++++++++++-- 2 files changed, 15 insertions(+), 6 deletions(-) (limited to 'gdb/python') diff --git a/gdb/python/py-utils.c b/gdb/python/py-utils.c index 9382eb6..3fcf48f 100644 --- a/gdb/python/py-utils.c +++ b/gdb/python/py-utils.c @@ -195,10 +195,11 @@ gdbpy_err_fetch::to_string () const Using str (aka PyObject_Str) will fetch the error message from gdb.GdbError ("message"). */ - if (m_error_value.get () != nullptr && m_error_value.get () != Py_None) - return gdbpy_obj_to_string (m_error_value.get ()); + gdbpy_ref<> value = this->value (); + if (value.get () != nullptr && value.get () != Py_None) + return gdbpy_obj_to_string (value.get ()); else - return gdbpy_obj_to_string (m_error_type.get ()); + return gdbpy_obj_to_string (this->type ().get ()); } /* See python-internal.h. */ @@ -206,7 +207,7 @@ gdbpy_err_fetch::to_string () const gdb::unique_xmalloc_ptr 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. diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h index c68aff5..9ceb4aa 100644 --- a/gdb/python/python-internal.h +++ b/gdb/python/python-internal.h @@ -675,16 +675,24 @@ public: 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. */ - gdbpy_ref<> value () + gdbpy_ref<> value () const { return m_error_value; } + /* Return a new reference to the exception type object. */ + + gdbpy_ref<> type () const + { + return m_error_type; + } + private: gdbpy_ref<> m_error_type, m_error_value, m_error_traceback; -- cgit v1.1