* [PATCH v2] gdb/python: add a 'connection_num' attribute to Inferior objects @ 2021-04-12 15:04 Tankut Baris Aktemur 2021-04-27 6:44 ` Aktemur, Tankut Baris 2021-04-27 9:10 ` Andrew Burgess 0 siblings, 2 replies; 8+ messages in thread From: Tankut Baris Aktemur @ 2021-04-12 15:04 UTC (permalink / raw) To: gdb-patches Define a 'connection_num' attribute for Inferior objects. The read-only attribute is the ID of the process stratum target of an inferior, as printed by "info inferiors". gdb/ChangeLog: 2021-04-12 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-04-12 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> * python.texi (Inferiors In Python): Mention the 'connection_num' attribute. gdb/testsuite/ChangeLog: 2021-04-12 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> * gdb.python/py-inferior.exp: Add test cases for 'connection_num'. --- gdb/NEWS | 5 +++++ gdb/doc/python.texi | 5 +++++ gdb/python/py-inferior.c | 16 +++++++++++++++ gdb/testsuite/gdb.python/py-inferior.exp | 25 +++++++++++++++++++++++- 4 files changed, 50 insertions(+), 1 deletion(-) diff --git a/gdb/NEWS b/gdb/NEWS index 6cf76a14317..bdc0e2c6593 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -138,6 +138,11 @@ QMemTags Request the remote to store the specified allocation tags to the requested memory range. +* Python API + + ** Inferior objects now contain a read-only 'connection_num' attribute that + gives the ID of the Inferior's process stratum target. + *** Changes in GDB 10 * There are new feature names for ARC targets: "org.gnu.gdb.arc.core" diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi index 9135d415dd1..b459ff245d4 100644 --- a/gdb/doc/python.texi +++ b/gdb/doc/python.texi @@ -2989,6 +2989,11 @@ A @code{gdb.Inferior} object has the following attributes: ID of inferior, as assigned by GDB. @end defvar +@defvar Inferior.connection_num +ID of inferior's connection (i.e.@: process target), as assigned by +@value{GDBN}. +@end defvar + @defvar Inferior.pid Process ID of the inferior, as assigned by the underlying operating system. diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c index a3d5952a10b..a7fac34f3d6 100644 --- a/gdb/python/py-inferior.c +++ b/gdb/python/py-inferior.c @@ -426,6 +426,20 @@ infpy_get_num (PyObject *self, void *closure) return gdb_py_object_from_longest (inf->inferior->num).release (); } +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) { @@ -928,6 +942,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, diff --git a/gdb/testsuite/gdb.python/py-inferior.exp b/gdb/testsuite/gdb.python/py-inferior.exp index 9df74e05182..2252215b721 100644 --- a/gdb/testsuite/gdb.python/py-inferior.exp +++ b/gdb/testsuite/gdb.python/py-inferior.exp @@ -51,6 +51,7 @@ gdb_py_test_silent_cmd "python i0 = inferiors\[0\]" "get first inferior" 0 gdb_test "python print ('result = %s' % (i0 == inferiors\[0\]))" " = True" "test equality comparison (true)" gdb_test "python print ('result = %s' % i0.num)" " = \[0-9\]+" "test Inferior.num" +gdb_test "python print ('result = %s' % i0.connection_num)" " = \[0-9\]+" "test Inferior.connection_num" gdb_test "python print ('result = %s' % i0.pid)" " = \[0-9\]+" "test Inferior.pid" gdb_test "python print ('result = %s' % i0.was_attached)" " = False" "test Inferior.was_attached" gdb_test "python print (i0.threads ())" "\\(<gdb.InferiorThread object at 0x\[\[:xdigit:\]\]+>,\\)" "test Inferior.threads" @@ -262,6 +263,8 @@ with_test_prefix "is_valid" { # correctly. gdb_test "python print (inf_list\[1\].num)" \ "RuntimeError: Inferior no longer exists.*" + gdb_test "python print (inf_list\[1\].connection_num)" \ + "RuntimeError: Inferior no longer exists.*" gdb_test "python print (inf_list\[1\].pid)" \ "RuntimeError: Inferior no longer exists.*" gdb_test "python print (inf_list\[1\].was_attached)" \ @@ -278,10 +281,30 @@ with_test_prefix "is_valid" { with_test_prefix "selected_inferior" { gdb_test "inferior 1" ".*" "switch to first inferior" gdb_test "py print (gdb.selected_inferior().num)" "1" "first inferior selected" + gdb_test "py print (gdb.selected_inferior().connection_num)" "1" \ + "first inferior's connection" + # Figure out if inf 1 has a native target. + set inf_1_is_native [gdb_is_target_native] - gdb_test "add-inferior" "Added inferior 3 on connection .*" "create new inferior" + gdb_test "add-inferior -no-connection" "Added inferior 3" "create new inferior" gdb_test "inferior 3" ".*" "switch to third inferior" gdb_test "py print (gdb.selected_inferior().num)" "3" "third inferior selected" + gdb_test "py print (gdb.selected_inferior().connection_num)" "None" \ + "third inferior's None connection" + gdb_test "target native" "Done. Use the \"run\" command to start a process." \ + "target for the third inferior" + + # If inf 1 has a native target, inf 3's target is shared with 1's. + # Otherwise, it must have created a new target with a new number. + if {$inf_1_is_native} { + set expected_connection_num 1 + } else { + set expected_connection_num 2 + } + gdb_test "py print (gdb.selected_inferior().connection_num)" \ + "$expected_connection_num" \ + "third inferior's native connection" + gdb_test "inferior 1" ".*" "switch back to first inferior" gdb_test_no_output "remove-inferiors 3" "remove second inferior" } -- 2.17.1 ^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH v2] gdb/python: add a 'connection_num' attribute to Inferior objects 2021-04-12 15:04 [PATCH v2] gdb/python: add a 'connection_num' attribute to Inferior objects Tankut Baris Aktemur @ 2021-04-27 6:44 ` Aktemur, Tankut Baris 2021-04-27 9:10 ` Andrew Burgess 1 sibling, 0 replies; 8+ messages in thread From: Aktemur, Tankut Baris @ 2021-04-27 6:44 UTC (permalink / raw) To: gdb-patches Kindly pinging. Thanks -Baris On Monday, April 12, 2021 5:04 PM, Aktemur, Tankut Baris wrote: > Define a 'connection_num' attribute for Inferior objects. The > read-only attribute is the ID of the process stratum target of an > inferior, as printed by "info inferiors". > > gdb/ChangeLog: > 2021-04-12 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-04-12 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> > > * python.texi (Inferiors In Python): Mention the 'connection_num' > attribute. > > gdb/testsuite/ChangeLog: > 2021-04-12 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> > > * gdb.python/py-inferior.exp: Add test cases for 'connection_num'. > --- > gdb/NEWS | 5 +++++ > gdb/doc/python.texi | 5 +++++ > gdb/python/py-inferior.c | 16 +++++++++++++++ > gdb/testsuite/gdb.python/py-inferior.exp | 25 +++++++++++++++++++++++- > 4 files changed, 50 insertions(+), 1 deletion(-) > > diff --git a/gdb/NEWS b/gdb/NEWS > index 6cf76a14317..bdc0e2c6593 100644 > --- a/gdb/NEWS > +++ b/gdb/NEWS > @@ -138,6 +138,11 @@ QMemTags > Request the remote to store the specified allocation tags to the requested > memory range. > > +* Python API > + > + ** Inferior objects now contain a read-only 'connection_num' attribute that > + gives the ID of the Inferior's process stratum target. > + > *** Changes in GDB 10 > > * There are new feature names for ARC targets: "org.gnu.gdb.arc.core" > diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi > index 9135d415dd1..b459ff245d4 100644 > --- a/gdb/doc/python.texi > +++ b/gdb/doc/python.texi > @@ -2989,6 +2989,11 @@ A @code{gdb.Inferior} object has the following attributes: > ID of inferior, as assigned by GDB. > @end defvar > > +@defvar Inferior.connection_num > +ID of inferior's connection (i.e.@: process target), as assigned by > +@value{GDBN}. > +@end defvar > + > @defvar Inferior.pid > Process ID of the inferior, as assigned by the underlying operating > system. > diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c > index a3d5952a10b..a7fac34f3d6 100644 > --- a/gdb/python/py-inferior.c > +++ b/gdb/python/py-inferior.c > @@ -426,6 +426,20 @@ infpy_get_num (PyObject *self, void *closure) > return gdb_py_object_from_longest (inf->inferior->num).release (); > } > > +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) > { > @@ -928,6 +942,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, > diff --git a/gdb/testsuite/gdb.python/py-inferior.exp b/gdb/testsuite/gdb.python/py- > inferior.exp > index 9df74e05182..2252215b721 100644 > --- a/gdb/testsuite/gdb.python/py-inferior.exp > +++ b/gdb/testsuite/gdb.python/py-inferior.exp > @@ -51,6 +51,7 @@ gdb_py_test_silent_cmd "python i0 = inferiors\[0\]" "get first inferior" 0 > > gdb_test "python print ('result = %s' % (i0 == inferiors\[0\]))" " = True" "test equality > comparison (true)" > gdb_test "python print ('result = %s' % i0.num)" " = \[0-9\]+" "test Inferior.num" > +gdb_test "python print ('result = %s' % i0.connection_num)" " = \[0-9\]+" "test > Inferior.connection_num" > gdb_test "python print ('result = %s' % i0.pid)" " = \[0-9\]+" "test Inferior.pid" > gdb_test "python print ('result = %s' % i0.was_attached)" " = False" "test > Inferior.was_attached" > gdb_test "python print (i0.threads ())" "\\(<gdb.InferiorThread object at > 0x\[\[:xdigit:\]\]+>,\\)" "test Inferior.threads" > @@ -262,6 +263,8 @@ with_test_prefix "is_valid" { > # correctly. > gdb_test "python print (inf_list\[1\].num)" \ > "RuntimeError: Inferior no longer exists.*" > + gdb_test "python print (inf_list\[1\].connection_num)" \ > + "RuntimeError: Inferior no longer exists.*" > gdb_test "python print (inf_list\[1\].pid)" \ > "RuntimeError: Inferior no longer exists.*" > gdb_test "python print (inf_list\[1\].was_attached)" \ > @@ -278,10 +281,30 @@ with_test_prefix "is_valid" { > with_test_prefix "selected_inferior" { > gdb_test "inferior 1" ".*" "switch to first inferior" > gdb_test "py print (gdb.selected_inferior().num)" "1" "first inferior selected" > + gdb_test "py print (gdb.selected_inferior().connection_num)" "1" \ > + "first inferior's connection" > + # Figure out if inf 1 has a native target. > + set inf_1_is_native [gdb_is_target_native] > > - gdb_test "add-inferior" "Added inferior 3 on connection .*" "create new inferior" > + gdb_test "add-inferior -no-connection" "Added inferior 3" "create new inferior" > gdb_test "inferior 3" ".*" "switch to third inferior" > gdb_test "py print (gdb.selected_inferior().num)" "3" "third inferior selected" > + gdb_test "py print (gdb.selected_inferior().connection_num)" "None" \ > + "third inferior's None connection" > + gdb_test "target native" "Done. Use the \"run\" command to start a process." \ > + "target for the third inferior" > + > + # If inf 1 has a native target, inf 3's target is shared with 1's. > + # Otherwise, it must have created a new target with a new number. > + if {$inf_1_is_native} { > + set expected_connection_num 1 > + } else { > + set expected_connection_num 2 > + } > + gdb_test "py print (gdb.selected_inferior().connection_num)" \ > + "$expected_connection_num" \ > + "third inferior's native connection" > + > gdb_test "inferior 1" ".*" "switch back to first inferior" > gdb_test_no_output "remove-inferiors 3" "remove second inferior" > } > -- > 2.17.1 Intel Deutschland GmbH Registered Address: Am Campeon 10, 85579 Neubiberg, Germany Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de> Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva Chairperson of the Supervisory Board: Nicole Lau Registered Office: Munich Commercial Register: Amtsgericht Muenchen HRB 186928 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] gdb/python: add a 'connection_num' attribute to Inferior objects 2021-04-12 15:04 [PATCH v2] gdb/python: add a 'connection_num' attribute to Inferior objects Tankut Baris Aktemur 2021-04-27 6:44 ` Aktemur, Tankut Baris @ 2021-04-27 9:10 ` Andrew Burgess 2021-04-27 17:15 ` Aktemur, Tankut Baris 1 sibling, 1 reply; 8+ messages in thread From: Andrew Burgess @ 2021-04-27 9:10 UTC (permalink / raw) To: Tankut Baris Aktemur; +Cc: gdb-patches * Tankut Baris Aktemur via Gdb-patches <gdb-patches@sourceware.org> [2021-04-12 17:04:28 +0200]: > Define a 'connection_num' attribute for Inferior objects. The > read-only attribute is the ID of the process stratum target of an > inferior, as printed by "info inferiors". > > gdb/ChangeLog: > 2021-04-12 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-04-12 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> > > * python.texi (Inferiors In Python): Mention the 'connection_num' > attribute. > > gdb/testsuite/ChangeLog: > 2021-04-12 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> > > * gdb.python/py-inferior.exp: Add test cases for > * 'connection_num'. Thanks for looking at this, I had a couple of minor comments. > --- > gdb/NEWS | 5 +++++ > gdb/doc/python.texi | 5 +++++ > gdb/python/py-inferior.c | 16 +++++++++++++++ > gdb/testsuite/gdb.python/py-inferior.exp | 25 +++++++++++++++++++++++- > 4 files changed, 50 insertions(+), 1 deletion(-) > > diff --git a/gdb/NEWS b/gdb/NEWS > index 6cf76a14317..bdc0e2c6593 100644 > --- a/gdb/NEWS > +++ b/gdb/NEWS > @@ -138,6 +138,11 @@ QMemTags > Request the remote to store the specified allocation tags to the requested > memory range. > > +* Python API > + > + ** Inferior objects now contain a read-only 'connection_num' attribute that > + gives the ID of the Inferior's process stratum target. I don't think you should mention "process stratum" here. The NEWS file is for users to read, and "stratum" is not mentioned anywhere in the GDB manual (or in this NEWS file). How about: ** Inferior objects now contain a read-only 'connection_num' attribute that gives the connection number as seen in 'info connections' and 'info inferiors'. > + > *** Changes in GDB 10 > > * There are new feature names for ARC targets: "org.gnu.gdb.arc.core" > diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi > index 9135d415dd1..b459ff245d4 100644 > --- a/gdb/doc/python.texi > +++ b/gdb/doc/python.texi > @@ -2989,6 +2989,11 @@ A @code{gdb.Inferior} object has the following attributes: > ID of inferior, as assigned by GDB. > @end defvar > > +@defvar Inferior.connection_num > +ID of inferior's connection (i.e.@: process target), as assigned by > +@value{GDBN}. > +@end defvar > + > @defvar Inferior.pid > Process ID of the inferior, as assigned by the underlying operating > system. > diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c > index a3d5952a10b..a7fac34f3d6 100644 > --- a/gdb/python/py-inferior.c > +++ b/gdb/python/py-inferior.c > @@ -426,6 +426,20 @@ infpy_get_num (PyObject *self, void *closure) > return gdb_py_object_from_longest (inf->inferior->num).release (); > } > > +static PyObject * > +infpy_get_connection_num (PyObject *self, void *closure) This function should have a header comment. Otherwise, this looks good. Thanks, Andrew > +{ > + 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) > { > @@ -928,6 +942,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, > diff --git a/gdb/testsuite/gdb.python/py-inferior.exp b/gdb/testsuite/gdb.python/py-inferior.exp > index 9df74e05182..2252215b721 100644 > --- a/gdb/testsuite/gdb.python/py-inferior.exp > +++ b/gdb/testsuite/gdb.python/py-inferior.exp > @@ -51,6 +51,7 @@ gdb_py_test_silent_cmd "python i0 = inferiors\[0\]" "get first inferior" 0 > > gdb_test "python print ('result = %s' % (i0 == inferiors\[0\]))" " = True" "test equality comparison (true)" > gdb_test "python print ('result = %s' % i0.num)" " = \[0-9\]+" "test Inferior.num" > +gdb_test "python print ('result = %s' % i0.connection_num)" " = \[0-9\]+" "test Inferior.connection_num" > gdb_test "python print ('result = %s' % i0.pid)" " = \[0-9\]+" "test Inferior.pid" > gdb_test "python print ('result = %s' % i0.was_attached)" " = False" "test Inferior.was_attached" > gdb_test "python print (i0.threads ())" "\\(<gdb.InferiorThread object at 0x\[\[:xdigit:\]\]+>,\\)" "test Inferior.threads" > @@ -262,6 +263,8 @@ with_test_prefix "is_valid" { > # correctly. > gdb_test "python print (inf_list\[1\].num)" \ > "RuntimeError: Inferior no longer exists.*" > + gdb_test "python print (inf_list\[1\].connection_num)" \ > + "RuntimeError: Inferior no longer exists.*" > gdb_test "python print (inf_list\[1\].pid)" \ > "RuntimeError: Inferior no longer exists.*" > gdb_test "python print (inf_list\[1\].was_attached)" \ > @@ -278,10 +281,30 @@ with_test_prefix "is_valid" { > with_test_prefix "selected_inferior" { > gdb_test "inferior 1" ".*" "switch to first inferior" > gdb_test "py print (gdb.selected_inferior().num)" "1" "first inferior selected" > + gdb_test "py print (gdb.selected_inferior().connection_num)" "1" \ > + "first inferior's connection" > + # Figure out if inf 1 has a native target. > + set inf_1_is_native [gdb_is_target_native] > > - gdb_test "add-inferior" "Added inferior 3 on connection .*" "create new inferior" > + gdb_test "add-inferior -no-connection" "Added inferior 3" "create new inferior" > gdb_test "inferior 3" ".*" "switch to third inferior" > gdb_test "py print (gdb.selected_inferior().num)" "3" "third inferior selected" > + gdb_test "py print (gdb.selected_inferior().connection_num)" "None" \ > + "third inferior's None connection" > + gdb_test "target native" "Done. Use the \"run\" command to start a process." \ > + "target for the third inferior" > + > + # If inf 1 has a native target, inf 3's target is shared with 1's. > + # Otherwise, it must have created a new target with a new number. > + if {$inf_1_is_native} { > + set expected_connection_num 1 > + } else { > + set expected_connection_num 2 > + } > + gdb_test "py print (gdb.selected_inferior().connection_num)" \ > + "$expected_connection_num" \ > + "third inferior's native connection" > + > gdb_test "inferior 1" ".*" "switch back to first inferior" > gdb_test_no_output "remove-inferiors 3" "remove second inferior" > } > -- > 2.17.1 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH v2] gdb/python: add a 'connection_num' attribute to Inferior objects 2021-04-27 9:10 ` Andrew Burgess @ 2021-04-27 17:15 ` Aktemur, Tankut Baris 2021-05-04 8:22 ` Aktemur, Tankut Baris 0 siblings, 1 reply; 8+ messages in thread From: Aktemur, Tankut Baris @ 2021-04-27 17:15 UTC (permalink / raw) To: Andrew Burgess, Eli Zaretskii; +Cc: gdb-patches On Tuesday, April 27, 2021 11:10 AM, Andrew Burgess wrote: > * Tankut Baris Aktemur via Gdb-patches <gdb-patches@sourceware.org> [2021-04-12 17:04:28 > +0200]: > > > Define a 'connection_num' attribute for Inferior objects. The > > read-only attribute is the ID of the process stratum target of an > > inferior, as printed by "info inferiors". > > > > gdb/ChangeLog: > > 2021-04-12 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-04-12 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> > > > > * python.texi (Inferiors In Python): Mention the 'connection_num' > > attribute. > > > > gdb/testsuite/ChangeLog: > > 2021-04-12 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> > > > > * gdb.python/py-inferior.exp: Add test cases for > > * 'connection_num'. > > Thanks for looking at this, I had a couple of minor comments. > > > --- > > gdb/NEWS | 5 +++++ > > gdb/doc/python.texi | 5 +++++ > > gdb/python/py-inferior.c | 16 +++++++++++++++ > > gdb/testsuite/gdb.python/py-inferior.exp | 25 +++++++++++++++++++++++- > > 4 files changed, 50 insertions(+), 1 deletion(-) > > > > diff --git a/gdb/NEWS b/gdb/NEWS > > index 6cf76a14317..bdc0e2c6593 100644 > > --- a/gdb/NEWS > > +++ b/gdb/NEWS > > @@ -138,6 +138,11 @@ QMemTags > > Request the remote to store the specified allocation tags to the requested > > memory range. > > > > +* Python API > > + > > + ** Inferior objects now contain a read-only 'connection_num' attribute that > > + gives the ID of the Inferior's process stratum target. > > I don't think you should mention "process stratum" here. The NEWS > file is for users to read, and "stratum" is not mentioned anywhere in > the GDB manual (or in this NEWS file). > > How about: > > ** Inferior objects now contain a read-only 'connection_num' attribute that > gives the connection number as seen in 'info connections' and > 'info inferiors'. Sure, I'll fix the text as above. > > + > > *** Changes in GDB 10 > > > > * There are new feature names for ARC targets: "org.gnu.gdb.arc.core" > > diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi > > index 9135d415dd1..b459ff245d4 100644 > > --- a/gdb/doc/python.texi > > +++ b/gdb/doc/python.texi > > @@ -2989,6 +2989,11 @@ A @code{gdb.Inferior} object has the following attributes: > > ID of inferior, as assigned by GDB. > > @end defvar > > > > +@defvar Inferior.connection_num > > +ID of inferior's connection (i.e.@: process target), as assigned by > > +@value{GDBN}. > > +@end defvar > > + > > @defvar Inferior.pid > > Process ID of the inferior, as assigned by the underlying operating > > system. > > diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c > > index a3d5952a10b..a7fac34f3d6 100644 > > --- a/gdb/python/py-inferior.c > > +++ b/gdb/python/py-inferior.c > > @@ -426,6 +426,20 @@ infpy_get_num (PyObject *self, void *closure) > > return gdb_py_object_from_longest (inf->inferior->num).release (); > > } > > > > +static PyObject * > > +infpy_get_connection_num (PyObject *self, void *closure) > > This function should have a header comment. I'll add the header comment. > Otherwise, this looks good. > > Thanks, > Andrew Thank you. Eli had commented on the first revision. Any further comments, Eli? -Baris > > +{ > > + 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) > > { > > @@ -928,6 +942,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, > > diff --git a/gdb/testsuite/gdb.python/py-inferior.exp b/gdb/testsuite/gdb.python/py- > inferior.exp > > index 9df74e05182..2252215b721 100644 > > --- a/gdb/testsuite/gdb.python/py-inferior.exp > > +++ b/gdb/testsuite/gdb.python/py-inferior.exp > > @@ -51,6 +51,7 @@ gdb_py_test_silent_cmd "python i0 = inferiors\[0\]" "get first inferior" > 0 > > > > gdb_test "python print ('result = %s' % (i0 == inferiors\[0\]))" " = True" "test equality > comparison (true)" > > gdb_test "python print ('result = %s' % i0.num)" " = \[0-9\]+" "test Inferior.num" > > +gdb_test "python print ('result = %s' % i0.connection_num)" " = \[0-9\]+" "test > Inferior.connection_num" > > gdb_test "python print ('result = %s' % i0.pid)" " = \[0-9\]+" "test Inferior.pid" > > gdb_test "python print ('result = %s' % i0.was_attached)" " = False" "test > Inferior.was_attached" > > gdb_test "python print (i0.threads ())" "\\(<gdb.InferiorThread object at > 0x\[\[:xdigit:\]\]+>,\\)" "test Inferior.threads" > > @@ -262,6 +263,8 @@ with_test_prefix "is_valid" { > > # correctly. > > gdb_test "python print (inf_list\[1\].num)" \ > > "RuntimeError: Inferior no longer exists.*" > > + gdb_test "python print (inf_list\[1\].connection_num)" \ > > + "RuntimeError: Inferior no longer exists.*" > > gdb_test "python print (inf_list\[1\].pid)" \ > > "RuntimeError: Inferior no longer exists.*" > > gdb_test "python print (inf_list\[1\].was_attached)" \ > > @@ -278,10 +281,30 @@ with_test_prefix "is_valid" { > > with_test_prefix "selected_inferior" { > > gdb_test "inferior 1" ".*" "switch to first inferior" > > gdb_test "py print (gdb.selected_inferior().num)" "1" "first inferior selected" > > + gdb_test "py print (gdb.selected_inferior().connection_num)" "1" \ > > + "first inferior's connection" > > + # Figure out if inf 1 has a native target. > > + set inf_1_is_native [gdb_is_target_native] > > > > - gdb_test "add-inferior" "Added inferior 3 on connection .*" "create new inferior" > > + gdb_test "add-inferior -no-connection" "Added inferior 3" "create new inferior" > > gdb_test "inferior 3" ".*" "switch to third inferior" > > gdb_test "py print (gdb.selected_inferior().num)" "3" "third inferior selected" > > + gdb_test "py print (gdb.selected_inferior().connection_num)" "None" \ > > + "third inferior's None connection" > > + gdb_test "target native" "Done. Use the \"run\" command to start a process." \ > > + "target for the third inferior" > > + > > + # If inf 1 has a native target, inf 3's target is shared with 1's. > > + # Otherwise, it must have created a new target with a new number. > > + if {$inf_1_is_native} { > > + set expected_connection_num 1 > > + } else { > > + set expected_connection_num 2 > > + } > > + gdb_test "py print (gdb.selected_inferior().connection_num)" \ > > + "$expected_connection_num" \ > > + "third inferior's native connection" > > + > > gdb_test "inferior 1" ".*" "switch back to first inferior" > > gdb_test_no_output "remove-inferiors 3" "remove second inferior" > > } > > -- > > 2.17.1 > > Intel Deutschland GmbH Registered Address: Am Campeon 10, 85579 Neubiberg, Germany Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de> Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva Chairperson of the Supervisory Board: Nicole Lau Registered Office: Munich Commercial Register: Amtsgericht Muenchen HRB 186928 ^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH v2] gdb/python: add a 'connection_num' attribute to Inferior objects 2021-04-27 17:15 ` Aktemur, Tankut Baris @ 2021-05-04 8:22 ` Aktemur, Tankut Baris 2021-05-11 7:22 ` Aktemur, Tankut Baris 0 siblings, 1 reply; 8+ messages in thread From: Aktemur, Tankut Baris @ 2021-05-04 8:22 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Andrew Burgess, gdb-patches Hi Eli, On Tuesday, April 27, 2021 7:15 PM, Aktemur, Tankut Baris Wrote: > On Tuesday, April 27, 2021 11:10 AM, Andrew Burgess wrote: > > * Tankut Baris Aktemur via Gdb-patches <gdb-patches@sourceware.org> [2021-04-12 17:04:28 > > +0200]: > > > > > Define a 'connection_num' attribute for Inferior objects. The > > > read-only attribute is the ID of the process stratum target of an > > > inferior, as printed by "info inferiors". > > > > > > gdb/ChangeLog: > > > 2021-04-12 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-04-12 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> > > > > > > * python.texi (Inferiors In Python): Mention the 'connection_num' > > > attribute. > > > > > > gdb/testsuite/ChangeLog: > > > 2021-04-12 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> > > > > > > * gdb.python/py-inferior.exp: Add test cases for > > > * 'connection_num'. > > > > Thanks for looking at this, I had a couple of minor comments. > > > > > --- > > > gdb/NEWS | 5 +++++ > > > gdb/doc/python.texi | 5 +++++ > > > gdb/python/py-inferior.c | 16 +++++++++++++++ > > > gdb/testsuite/gdb.python/py-inferior.exp | 25 +++++++++++++++++++++++- > > > 4 files changed, 50 insertions(+), 1 deletion(-) > > > > > > diff --git a/gdb/NEWS b/gdb/NEWS > > > index 6cf76a14317..bdc0e2c6593 100644 > > > --- a/gdb/NEWS > > > +++ b/gdb/NEWS > > > @@ -138,6 +138,11 @@ QMemTags > > > Request the remote to store the specified allocation tags to the requested > > > memory range. > > > > > > +* Python API > > > + > > > + ** Inferior objects now contain a read-only 'connection_num' attribute that > > > + gives the ID of the Inferior's process stratum target. > > > > I don't think you should mention "process stratum" here. The NEWS > > file is for users to read, and "stratum" is not mentioned anywhere in > > the GDB manual (or in this NEWS file). > > > > How about: > > > > ** Inferior objects now contain a read-only 'connection_num' attribute that > > gives the connection number as seen in 'info connections' and > > 'info inferiors'. > > Sure, I'll fix the text as above. > > > > + > > > *** Changes in GDB 10 > > > > > > * There are new feature names for ARC targets: "org.gnu.gdb.arc.core" > > > diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi > > > index 9135d415dd1..b459ff245d4 100644 > > > --- a/gdb/doc/python.texi > > > +++ b/gdb/doc/python.texi > > > @@ -2989,6 +2989,11 @@ A @code{gdb.Inferior} object has the following attributes: > > > ID of inferior, as assigned by GDB. > > > @end defvar > > > > > > +@defvar Inferior.connection_num > > > +ID of inferior's connection (i.e.@: process target), as assigned by > > > +@value{GDBN}. > > > +@end defvar > > > + > > > @defvar Inferior.pid > > > Process ID of the inferior, as assigned by the underlying operating > > > system. > > > diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c > > > index a3d5952a10b..a7fac34f3d6 100644 > > > --- a/gdb/python/py-inferior.c > > > +++ b/gdb/python/py-inferior.c > > > @@ -426,6 +426,20 @@ infpy_get_num (PyObject *self, void *closure) > > > return gdb_py_object_from_longest (inf->inferior->num).release (); > > > } > > > > > > +static PyObject * > > > +infpy_get_connection_num (PyObject *self, void *closure) > > > > This function should have a header comment. > > I'll add the header comment. > > > Otherwise, this looks good. > > > > Thanks, > > Andrew > > Thank you. > > Eli had commented on the first revision. Any further comments, Eli? > > -Baris Any further comments about the patch? Is v2 OK from your PoV? Thanks -Baris > > > +{ > > > + 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) > > > { > > > @@ -928,6 +942,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, > > > diff --git a/gdb/testsuite/gdb.python/py-inferior.exp b/gdb/testsuite/gdb.python/py- > > inferior.exp > > > index 9df74e05182..2252215b721 100644 > > > --- a/gdb/testsuite/gdb.python/py-inferior.exp > > > +++ b/gdb/testsuite/gdb.python/py-inferior.exp > > > @@ -51,6 +51,7 @@ gdb_py_test_silent_cmd "python i0 = inferiors\[0\]" "get first > inferior" > > 0 > > > > > > gdb_test "python print ('result = %s' % (i0 == inferiors\[0\]))" " = True" "test > equality > > comparison (true)" > > > gdb_test "python print ('result = %s' % i0.num)" " = \[0-9\]+" "test Inferior.num" > > > +gdb_test "python print ('result = %s' % i0.connection_num)" " = \[0-9\]+" "test > > Inferior.connection_num" > > > gdb_test "python print ('result = %s' % i0.pid)" " = \[0-9\]+" "test Inferior.pid" > > > gdb_test "python print ('result = %s' % i0.was_attached)" " = False" "test > > Inferior.was_attached" > > > gdb_test "python print (i0.threads ())" "\\(<gdb.InferiorThread object at > > 0x\[\[:xdigit:\]\]+>,\\)" "test Inferior.threads" > > > @@ -262,6 +263,8 @@ with_test_prefix "is_valid" { > > > # correctly. > > > gdb_test "python print (inf_list\[1\].num)" \ > > > "RuntimeError: Inferior no longer exists.*" > > > + gdb_test "python print (inf_list\[1\].connection_num)" \ > > > + "RuntimeError: Inferior no longer exists.*" > > > gdb_test "python print (inf_list\[1\].pid)" \ > > > "RuntimeError: Inferior no longer exists.*" > > > gdb_test "python print (inf_list\[1\].was_attached)" \ > > > @@ -278,10 +281,30 @@ with_test_prefix "is_valid" { > > > with_test_prefix "selected_inferior" { > > > gdb_test "inferior 1" ".*" "switch to first inferior" > > > gdb_test "py print (gdb.selected_inferior().num)" "1" "first inferior selected" > > > + gdb_test "py print (gdb.selected_inferior().connection_num)" "1" \ > > > + "first inferior's connection" > > > + # Figure out if inf 1 has a native target. > > > + set inf_1_is_native [gdb_is_target_native] > > > > > > - gdb_test "add-inferior" "Added inferior 3 on connection .*" "create new inferior" > > > + gdb_test "add-inferior -no-connection" "Added inferior 3" "create new inferior" > > > gdb_test "inferior 3" ".*" "switch to third inferior" > > > gdb_test "py print (gdb.selected_inferior().num)" "3" "third inferior selected" > > > + gdb_test "py print (gdb.selected_inferior().connection_num)" "None" \ > > > + "third inferior's None connection" > > > + gdb_test "target native" "Done. Use the \"run\" command to start a process." \ > > > + "target for the third inferior" > > > + > > > + # If inf 1 has a native target, inf 3's target is shared with 1's. > > > + # Otherwise, it must have created a new target with a new number. > > > + if {$inf_1_is_native} { > > > + set expected_connection_num 1 > > > + } else { > > > + set expected_connection_num 2 > > > + } > > > + gdb_test "py print (gdb.selected_inferior().connection_num)" \ > > > + "$expected_connection_num" \ > > > + "third inferior's native connection" > > > + > > > gdb_test "inferior 1" ".*" "switch back to first inferior" > > > gdb_test_no_output "remove-inferiors 3" "remove second inferior" > > > } > > > -- > > > 2.17.1 > > > Intel Deutschland GmbH Registered Address: Am Campeon 10, 85579 Neubiberg, Germany Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de> Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva Chairperson of the Supervisory Board: Nicole Lau Registered Office: Munich Commercial Register: Amtsgericht Muenchen HRB 186928 ^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH v2] gdb/python: add a 'connection_num' attribute to Inferior objects 2021-05-04 8:22 ` Aktemur, Tankut Baris @ 2021-05-11 7:22 ` Aktemur, Tankut Baris 2021-05-13 18:31 ` Simon Marchi 0 siblings, 1 reply; 8+ messages in thread From: Aktemur, Tankut Baris @ 2021-05-11 7:22 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Andrew Burgess, gdb-patches On Tuesday, May 4, 2021 10:23 AM, Aktemur, Tankut Baris wrote: > Hi Eli, > > On Tuesday, April 27, 2021 7:15 PM, Aktemur, Tankut Baris Wrote: > > On Tuesday, April 27, 2021 11:10 AM, Andrew Burgess wrote: > > > * Tankut Baris Aktemur via Gdb-patches <gdb-patches@sourceware.org> [2021-04-12 17:04:28 > > > +0200]: > > > > > > > Define a 'connection_num' attribute for Inferior objects. The > > > > read-only attribute is the ID of the process stratum target of an > > > > inferior, as printed by "info inferiors". ... > > > Otherwise, this looks good. > > > > > > Thanks, > > > Andrew > > > > Thank you. > > > > Eli had commented on the first revision. Any further comments, Eli? > > > > -Baris > > Any further comments about the patch? > Is v2 OK from your PoV? Kindly pinging. Thanks, -Baris Intel Deutschland GmbH Registered Address: Am Campeon 10, 85579 Neubiberg, Germany Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de> Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva Chairperson of the Supervisory Board: Nicole Lau Registered Office: Munich Commercial Register: Amtsgericht Muenchen HRB 186928 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] gdb/python: add a 'connection_num' attribute to Inferior objects 2021-05-11 7:22 ` Aktemur, Tankut Baris @ 2021-05-13 18:31 ` Simon Marchi 2021-05-14 10:13 ` Aktemur, Tankut Baris 0 siblings, 1 reply; 8+ messages in thread From: Simon Marchi @ 2021-05-13 18:31 UTC (permalink / raw) To: Aktemur, Tankut Baris, Eli Zaretskii; +Cc: gdb-patches On 2021-05-11 3:22 a.m., Aktemur, Tankut Baris via Gdb-patches wrote: > On Tuesday, May 4, 2021 10:23 AM, Aktemur, Tankut Baris wrote: >> Hi Eli, >> >> On Tuesday, April 27, 2021 7:15 PM, Aktemur, Tankut Baris Wrote: >>> On Tuesday, April 27, 2021 11:10 AM, Andrew Burgess wrote: >>>> * Tankut Baris Aktemur via Gdb-patches <gdb-patches@sourceware.org> [2021-04-12 17:04:28 >>>> +0200]: >>>> >>>>> Define a 'connection_num' attribute for Inferior objects. The >>>>> read-only attribute is the ID of the process stratum target of an >>>>> inferior, as printed by "info inferiors". > ... >>>> Otherwise, this looks good. >>>> >>>> Thanks, >>>> Andrew >>> >>> Thank you. >>> >>> Eli had commented on the first revision. Any further comments, Eli? >>> >>> -Baris >> >> Any further comments about the patch? >> Is v2 OK from your PoV? > > Kindly pinging. > > Thanks, > -Baris I would suggest using a cross-refererence to point to where we talk about connections or the "info connections" command. Do we talk about "process target" else where in the doc? A bit like in NEWS, I don't think that's a user-facing concept (connections are). So I would remove that part. I would also mention "or None if the inferior is not connected to a target. I guess that if we make Python objects to represent connections in the future (listable with gdb.connections(), for example), then it would make sense to have a "inferior.connection" read-only property, to get an inferior's connection? And then, inferior.connection_num would be obsoleted by this, since you could then do "inferior.connection.num"? Ideally, we'd go straight to adding Connection objects, but obviously that's more work. So I'm ok with going with connection_num as a stop-gap. Simon ^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH v2] gdb/python: add a 'connection_num' attribute to Inferior objects 2021-05-13 18:31 ` Simon Marchi @ 2021-05-14 10:13 ` Aktemur, Tankut Baris 0 siblings, 0 replies; 8+ messages in thread From: Aktemur, Tankut Baris @ 2021-05-14 10:13 UTC (permalink / raw) To: Simon Marchi; +Cc: gdb-patches, Andrew Burgess, Eli Zaretskii On Thursday, May 13, 2021 8:32 PM, Simon Marchi wrote: > On 2021-05-11 3:22 a.m., Aktemur, Tankut Baris via Gdb-patches wrote: > > On Tuesday, May 4, 2021 10:23 AM, Aktemur, Tankut Baris wrote: > >> Hi Eli, > >> > >> On Tuesday, April 27, 2021 7:15 PM, Aktemur, Tankut Baris Wrote: > >>> On Tuesday, April 27, 2021 11:10 AM, Andrew Burgess wrote: > >>>> * Tankut Baris Aktemur via Gdb-patches <gdb-patches@sourceware.org> [2021-04-12 > 17:04:28 > >>>> +0200]: > >>>> > >>>>> Define a 'connection_num' attribute for Inferior objects. The > >>>>> read-only attribute is the ID of the process stratum target of an > >>>>> inferior, as printed by "info inferiors". > > ... > >>>> Otherwise, this looks good. > >>>> > >>>> Thanks, > >>>> Andrew > >>> > >>> Thank you. > >>> > >>> Eli had commented on the first revision. Any further comments, Eli? > >>> > >>> -Baris > >> > >> Any further comments about the patch? > >> Is v2 OK from your PoV? > > > > Kindly pinging. > > > > Thanks, > > -Baris > > I would suggest using a cross-refererence to point to where we talk > about connections or the "info connections" command. Do we talk about > "process target" else where in the doc? A bit like in NEWS, I don't > think that's a user-facing concept (connections are). So I would remove > that part. > > I would also mention "or None if the inferior is not connected to a > target. I made these updates and will send v3 shortly. > I guess that if we make Python objects to represent connections in the > future (listable with gdb.connections(), for example), then it would > make sense to have a "inferior.connection" read-only property, to get an > inferior's connection? And then, inferior.connection_num would be > obsoleted by this, since you could then do "inferior.connection.num"? Yes. > Ideally, we'd go straight to adding Connection objects, but obviously > that's more work. So I'm ok with going with connection_num as a > stop-gap. > > Simon Thanks. -Baris Intel Deutschland GmbH Registered Address: Am Campeon 10, 85579 Neubiberg, Germany Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de> Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva Chairperson of the Supervisory Board: Nicole Lau Registered Office: Munich Commercial Register: Amtsgericht Muenchen HRB 186928 ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-05-14 10:13 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-04-12 15:04 [PATCH v2] gdb/python: add a 'connection_num' attribute to Inferior objects Tankut Baris Aktemur 2021-04-27 6:44 ` Aktemur, Tankut Baris 2021-04-27 9:10 ` Andrew Burgess 2021-04-27 17:15 ` Aktemur, Tankut Baris 2021-05-04 8:22 ` Aktemur, Tankut Baris 2021-05-11 7:22 ` Aktemur, Tankut Baris 2021-05-13 18:31 ` Simon Marchi 2021-05-14 10:13 ` Aktemur, Tankut Baris
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).