mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-07-30 21:34:42 +08:00
Add Python InferiorThread.inferior attribute
So a script can easily get at a thread's inferior and its number. gdb/ChangeLog: 2016-01-13 Pedro Alves <palves@redhat.com> * NEWS: Mention InferiorThread.inferior. * python/py-infthread.c (thpy_get_inferior): New. (thread_object_getset): Register "inferior". gdb/testsuite/ChangeLog: 2016-01-13 Pedro Alves <palves@redhat.com> * gdb.python/py-infthread.exp: Test InferiorThread.inferior. gdb/doc/ChangeLog: 2016-01-13 Pedro Alves <palves@redhat.com> * python.texi (Threads In Python): Document InferiorThread.inferior.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2016-01-13 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
|
* NEWS: Mention InferiorThread.inferior.
|
||||||
|
* python/py-infthread.c (thpy_get_inferior): New.
|
||||||
|
(thread_object_getset): Register "inferior".
|
||||||
|
|
||||||
2016-01-13 Pedro Alves <palves@redhat.com>
|
2016-01-13 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
* NEWS: Mention $_inferior.
|
* NEWS: Mention $_inferior.
|
||||||
|
5
gdb/NEWS
5
gdb/NEWS
@ -175,6 +175,11 @@ show remote catch-syscall-packet
|
|||||||
format. It outputs data in hexadecimal format with zero-padding on the
|
format. It outputs data in hexadecimal format with zero-padding on the
|
||||||
left.
|
left.
|
||||||
|
|
||||||
|
* Python Scripting
|
||||||
|
|
||||||
|
** gdb.InferiorThread objects have a new attribute "inferior", which
|
||||||
|
is the Inferior object the thread belongs to.
|
||||||
|
|
||||||
*** Changes in GDB 7.10
|
*** Changes in GDB 7.10
|
||||||
|
|
||||||
* Support for process record-replay and reverse debugging on aarch64*-linux*
|
* Support for process record-replay and reverse debugging on aarch64*-linux*
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2016-01-13 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
|
* python.texi (Threads In Python): Document
|
||||||
|
InferiorThread.inferior.
|
||||||
|
|
||||||
2016-01-13 Pedro Alves <palves@redhat.com>
|
2016-01-13 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
* gdb.texinfo (Inferiors and Programs): Document the $_inferior
|
* gdb.texinfo (Inferiors and Programs): Document the $_inferior
|
||||||
|
@ -3006,6 +3006,11 @@ Either the LWPID or TID may be 0, which indicates that the operating system
|
|||||||
does not use that identifier.
|
does not use that identifier.
|
||||||
@end defvar
|
@end defvar
|
||||||
|
|
||||||
|
@defvar InferiorThread.inferior
|
||||||
|
The inferior this thread belongs to. This attribute is represented as
|
||||||
|
a @code{gdb.Inferior} object. This attribute is not writable.
|
||||||
|
@end defvar
|
||||||
|
|
||||||
A @code{gdb.InferiorThread} object has the following methods:
|
A @code{gdb.InferiorThread} object has the following methods:
|
||||||
|
|
||||||
@defun InferiorThread.is_valid ()
|
@defun InferiorThread.is_valid ()
|
||||||
|
@ -140,6 +140,18 @@ thpy_get_ptid (PyObject *self, void *closure)
|
|||||||
return gdbpy_create_ptid_object (thread_obj->thread->ptid);
|
return gdbpy_create_ptid_object (thread_obj->thread->ptid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Getter for InferiorThread.inferior -> Inferior. */
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
thpy_get_inferior (PyObject *self, void *ignore)
|
||||||
|
{
|
||||||
|
thread_object *thread_obj = (thread_object *) self;
|
||||||
|
|
||||||
|
THPY_REQUIRE_VALID (thread_obj);
|
||||||
|
|
||||||
|
return thread_obj->inf_obj;
|
||||||
|
}
|
||||||
|
|
||||||
/* Implementation of InferiorThread.switch ().
|
/* Implementation of InferiorThread.switch ().
|
||||||
Makes this the GDB selected thread. */
|
Makes this the GDB selected thread. */
|
||||||
|
|
||||||
@ -285,6 +297,8 @@ static PyGetSetDef thread_object_getset[] =
|
|||||||
{ "num", thpy_get_num, NULL, "ID of the thread, as assigned by GDB.", NULL },
|
{ "num", thpy_get_num, NULL, "ID of the thread, as assigned by GDB.", NULL },
|
||||||
{ "ptid", thpy_get_ptid, NULL, "ID of the thread, as assigned by the OS.",
|
{ "ptid", thpy_get_ptid, NULL, "ID of the thread, as assigned by the OS.",
|
||||||
NULL },
|
NULL },
|
||||||
|
{ "inferior", thpy_get_inferior, NULL,
|
||||||
|
"The Inferior object this thread belongs to.", NULL },
|
||||||
|
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2016-01-13 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
|
* gdb.python/py-infthread.exp: Test InferiorThread.inferior.
|
||||||
|
|
||||||
2016-01-13 Pedro Alves <palves@redhat.com>
|
2016-01-13 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
* gdb.base/default.exp: Expect $_inferior as well.
|
* gdb.base/default.exp: Expect $_inferior as well.
|
||||||
|
@ -44,6 +44,9 @@ gdb_test "python print (t0)" "\\<gdb.InferiorThread object at 0x\[\[:xdigit:\]\]
|
|||||||
gdb_test "python print ('result = %s' % t0.num)" " = 1" "test InferiorThread.num"
|
gdb_test "python print ('result = %s' % t0.num)" " = 1" "test InferiorThread.num"
|
||||||
gdb_test "python print ('result = %s' % str (t0.ptid))" " = \\(\[0-9\]+, \[0-9\]+, \[0-9\]+\\)" "test InferiorThread.ptid"
|
gdb_test "python print ('result = %s' % str (t0.ptid))" " = \\(\[0-9\]+, \[0-9\]+, \[0-9\]+\\)" "test InferiorThread.ptid"
|
||||||
|
|
||||||
|
gdb_py_test_silent_cmd "python i0 = t0.inferior" "test InferiorThread.inferior" 1
|
||||||
|
gdb_test "python print ('result = %s' % i0.num)" " = 1" "test Inferior.num"
|
||||||
|
|
||||||
gdb_py_test_silent_cmd "python name = gdb.selected_thread().name" \
|
gdb_py_test_silent_cmd "python name = gdb.selected_thread().name" \
|
||||||
"get supplied name of current thread" 1
|
"get supplied name of current thread" 1
|
||||||
gdb_py_test_silent_cmd "python gdb.selected_thread().name = 'hibob'" \
|
gdb_py_test_silent_cmd "python gdb.selected_thread().name = 'hibob'" \
|
||||||
|
Reference in New Issue
Block a user