aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/py-arch.c2
-rw-r--r--gdb/python/py-block.c2
-rw-r--r--gdb/python/py-breakpoint.c4
-rw-r--r--gdb/python/py-connection.c2
-rw-r--r--gdb/python/py-inferior.c2
-rw-r--r--gdb/python/py-objfile.c2
-rw-r--r--gdb/python/py-symbol.c2
-rw-r--r--gdb/python/py-type.c3
-rw-r--r--gdb/python/py-unwind.c2
-rw-r--r--gdb/python/py-utils.c8
-rw-r--r--gdb/python/python-internal.h9
11 files changed, 27 insertions, 11 deletions
diff --git a/gdb/python/py-arch.c b/gdb/python/py-arch.c
index ac51933..b7d861d 100644
--- a/gdb/python/py-arch.c
+++ b/gdb/python/py-arch.c
@@ -326,7 +326,7 @@ archpy_repr (PyObject *self)
{
const auto gdbarch = arch_object_to_gdbarch (self);
if (gdbarch == nullptr)
- return PyUnicode_FromFormat ("<%s (invalid)>", Py_TYPE (self)->tp_name);
+ return gdb_py_invalid_object_repr (self);
auto arch_info = gdbarch_bfd_arch_info (gdbarch);
return PyUnicode_FromFormat ("<%s arch_name=%s printable_name=%s>",
diff --git a/gdb/python/py-block.c b/gdb/python/py-block.c
index dd6d6d2..34be466 100644
--- a/gdb/python/py-block.c
+++ b/gdb/python/py-block.c
@@ -425,7 +425,7 @@ blpy_repr (PyObject *self)
{
const auto block = block_object_to_block (self);
if (block == nullptr)
- return PyUnicode_FromFormat ("<%s (invalid)>", Py_TYPE (self)->tp_name);
+ return gdb_py_invalid_object_repr (self);
const auto name = block->function () ?
block->function ()->print_name () : "<anonymous>";
diff --git a/gdb/python/py-breakpoint.c b/gdb/python/py-breakpoint.c
index 5155d41..9b5e023 100644
--- a/gdb/python/py-breakpoint.c
+++ b/gdb/python/py-breakpoint.c
@@ -1750,8 +1750,8 @@ bplocpy_repr (PyObject *py_self)
{
const auto self = (gdbpy_breakpoint_location_object *) py_self;
if (self->owner == nullptr || self->owner->bp == nullptr
- || self->owner->bp != self->bp_loc->owner)
- return PyUnicode_FromFormat ("<%s (invalid)>", Py_TYPE (self)->tp_name);
+ || self->owner->bp != self->bp_loc->owner)
+ return gdb_py_invalid_object_repr (py_self);
const auto enabled = self->bp_loc->enabled ? "enabled" : "disabled";
diff --git a/gdb/python/py-connection.c b/gdb/python/py-connection.c
index 3df12b4..d288a74 100644
--- a/gdb/python/py-connection.c
+++ b/gdb/python/py-connection.c
@@ -204,7 +204,7 @@ connpy_repr (PyObject *obj)
process_stratum_target *target = self->target;
if (target == nullptr)
- return PyUnicode_FromFormat ("<%s (invalid)>", Py_TYPE (obj)->tp_name);
+ return gdb_py_invalid_object_repr (obj);
return PyUnicode_FromFormat ("<%s num=%d, what=\"%s\">",
Py_TYPE (obj)->tp_name,
diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c
index ed153d6..929d8bd 100644
--- a/gdb/python/py-inferior.c
+++ b/gdb/python/py-inferior.c
@@ -800,7 +800,7 @@ infpy_repr (PyObject *obj)
inferior *inf = self->inferior;
if (inf == nullptr)
- return PyUnicode_FromString ("<gdb.Inferior (invalid)>");
+ return gdb_py_invalid_object_repr (obj);
return PyUnicode_FromFormat ("<gdb.Inferior num=%d, pid=%d>",
inf->num, inf->pid);
diff --git a/gdb/python/py-objfile.c b/gdb/python/py-objfile.c
index bb5d0d9..4f5e5cd 100644
--- a/gdb/python/py-objfile.c
+++ b/gdb/python/py-objfile.c
@@ -537,7 +537,7 @@ objfpy_repr (PyObject *self_)
objfile *obj = self->objfile;
if (obj == nullptr)
- return PyUnicode_FromString ("<gdb.Objfile (invalid)>");
+ return gdb_py_invalid_object_repr (self_);
return PyUnicode_FromFormat ("<gdb.Objfile filename=%s>",
objfile_name (obj));
diff --git a/gdb/python/py-symbol.c b/gdb/python/py-symbol.c
index 99724cf..014442b 100644
--- a/gdb/python/py-symbol.c
+++ b/gdb/python/py-symbol.c
@@ -385,7 +385,7 @@ sympy_repr (PyObject *self)
{
const auto symbol = symbol_object_to_symbol (self);
if (symbol == nullptr)
- return PyUnicode_FromFormat ("<%s (invalid)>", Py_TYPE (self)->tp_name);
+ return gdb_py_invalid_object_repr (self);
return PyUnicode_FromFormat ("<%s print_name=%s>", Py_TYPE (self)->tp_name,
symbol->print_name ());
diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c
index bfaa6d2..27c7b78 100644
--- a/gdb/python/py-type.c
+++ b/gdb/python/py-type.c
@@ -1083,8 +1083,7 @@ typy_repr (PyObject *self)
{
const auto type = type_object_to_type (self);
if (type == nullptr)
- return PyUnicode_FromFormat ("<%s (invalid)>",
- Py_TYPE (self)->tp_name);
+ return gdb_py_invalid_object_repr (self);
const char *code = pyty_codes[type->code ()].name;
string_file type_name;
diff --git a/gdb/python/py-unwind.c b/gdb/python/py-unwind.c
index f12485c..70c3372 100644
--- a/gdb/python/py-unwind.c
+++ b/gdb/python/py-unwind.c
@@ -425,7 +425,7 @@ pending_framepy_repr (PyObject *self)
frame_info_ptr frame = pending_frame->frame_info;
if (frame == nullptr)
- return PyUnicode_FromFormat ("<%s (invalid)>", Py_TYPE (self)->tp_name);
+ return gdb_py_invalid_object_repr (self);
const char *sp_str = nullptr;
const char *pc_str = nullptr;
diff --git a/gdb/python/py-utils.c b/gdb/python/py-utils.c
index f1ca9ea..c292910 100644
--- a/gdb/python/py-utils.c
+++ b/gdb/python/py-utils.c
@@ -597,3 +597,11 @@ gdbpy_fix_doc_string_indentation (gdb::unique_xmalloc_ptr<char> doc)
return doc;
}
+
+/* See python-internal.h. */
+
+PyObject *
+gdb_py_invalid_object_repr (PyObject *self)
+{
+ return PyUnicode_FromFormat ("<%s (invalid)>", Py_TYPE (self)->tp_name);
+}
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
index 14e1557..8ff9af6 100644
--- a/gdb/python/python-internal.h
+++ b/gdb/python/python-internal.h
@@ -897,6 +897,15 @@ int gdb_pymodule_addobject (PyObject *module, const char *name,
PyObject *object)
CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION;
+
+/* Return a Python string (str) object that represents SELF. SELF can be
+ any object type, but should be in an "invalid" state. What "invalid"
+ means is up to the caller. The returned string will take the form
+ "<TYPENAME (invalid)>", without the quotes, and with TYPENAME replaced
+ with the type of SELF. */
+
+PyObject *gdb_py_invalid_object_repr (PyObject *self);
+
struct varobj_iter;
struct varobj;
std::unique_ptr<varobj_iter> py_varobj_get_iterator