aboutsummaryrefslogtreecommitdiff
path: root/gdb/python
diff options
context:
space:
mode:
authorTankut Baris Aktemur <tankut.baris.aktemur@intel.com>2021-05-14 11:56:31 +0200
committerTankut Baris Aktemur <tankut.baris.aktemur@intel.com>2021-05-14 15:33:23 +0200
commit55789354fcbaf879f3ca8475b647b2747dec486e (patch)
treec190df296e9397418263e9615401a9b6dde02b2d /gdb/python
parent2f63ec5ccc5dca36398e570a500ad553729b19a3 (diff)
downloadbinutils-55789354fcbaf879f3ca8475b647b2747dec486e.zip
binutils-55789354fcbaf879f3ca8475b647b2747dec486e.tar.gz
binutils-55789354fcbaf879f3ca8475b647b2747dec486e.tar.bz2
gdb/python: add a 'connection_num' attribute to Inferior objects
Define a 'connection_num' attribute for Inferior objects. The read-only attribute is the ID of the connection of an inferior, as printed by "info inferiors". In GDB's internal terminology, that's the process stratum target of the inferior. If the inferior has no target connection, the attribute is None. gdb/ChangeLog: 2021-05-14 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> * python/py-inferior.c (infpy_get_connection_num): New function. (inferior_object_getset): Add a new element for 'connection_num'. * NEWS: Mention the 'connection_num' attribute of Inferior objects. gdb/doc/ChangeLog: 2021-05-14 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> * python.texi (Inferiors In Python): Mention the 'connection_num' attribute. gdb/testsuite/ChangeLog: 2021-05-14 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> * gdb.python/py-inferior.exp: Add test cases for 'connection_num'.
Diffstat (limited to 'gdb/python')
-rw-r--r--gdb/python/py-inferior.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c
index 94c2c23..336c642 100644
--- a/gdb/python/py-inferior.c
+++ b/gdb/python/py-inferior.c
@@ -427,6 +427,23 @@ infpy_get_num (PyObject *self, void *closure)
return gdb_py_object_from_longest (inf->inferior->num).release ();
}
+/* Return the connection number of the given inferior, or None if a
+ connection does not exist. */
+
+static PyObject *
+infpy_get_connection_num (PyObject *self, void *closure)
+{
+ inferior_object *inf = (inferior_object *) self;
+
+ INFPY_REQUIRE_VALID (inf);
+
+ process_stratum_target *target = inf->inferior->process_target ();
+ if (target == nullptr)
+ Py_RETURN_NONE;
+
+ return PyLong_FromLong (target->connection_number);
+}
+
static PyObject *
infpy_get_pid (PyObject *self, void *closure)
{
@@ -943,6 +960,8 @@ gdbpy_initialize_inferior (void)
static gdb_PyGetSetDef inferior_object_getset[] =
{
{ "num", infpy_get_num, NULL, "ID of inferior, as assigned by GDB.", NULL },
+ { "connection_num", infpy_get_connection_num, NULL,
+ "ID of inferior's connection, as assigned by GDB.", NULL },
{ "pid", infpy_get_pid, NULL, "PID of inferior, as assigned by the OS.",
NULL },
{ "was_attached", infpy_get_was_attached, NULL,