From: Pedro Alves Date: Wed, 13 Jan 2016 10:56:06 +0000 (+0000) Subject: Add Python InferiorThread.inferior attribute X-Git-Tag: gdb-7.11-release~275 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8465445732dc04c3fb6cf954274e12d06b274f08;p=external%2Fbinutils.git 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 * 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 * gdb.python/py-infthread.exp: Test InferiorThread.inferior. gdb/doc/ChangeLog: 2016-01-13 Pedro Alves * python.texi (Threads In Python): Document InferiorThread.inferior. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1e6f922..47b5ffb 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2016-01-13 Pedro Alves + * NEWS: Mention InferiorThread.inferior. + * python/py-infthread.c (thpy_get_inferior): New. + (thread_object_getset): Register "inferior". + +2016-01-13 Pedro Alves + * NEWS: Mention $_inferior. * inferior.c (inferior_id_make_value): New. (inferior_funcs): New. diff --git a/gdb/NEWS b/gdb/NEWS index c22ac54..ed38754 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -175,6 +175,11 @@ show remote catch-syscall-packet format. It outputs data in hexadecimal format with zero-padding on the 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 * Support for process record-replay and reverse debugging on aarch64*-linux* diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index b51e8df..be16225 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,5 +1,10 @@ 2016-01-13 Pedro Alves + * python.texi (Threads In Python): Document + InferiorThread.inferior. + +2016-01-13 Pedro Alves + * gdb.texinfo (Inferiors and Programs): Document the $_inferior convenience variable. (Convenience Vars): Likewise. diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi index e749810..855da44 100644 --- a/gdb/doc/python.texi +++ b/gdb/doc/python.texi @@ -3006,6 +3006,11 @@ Either the LWPID or TID may be 0, which indicates that the operating system does not use that identifier. @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: @defun InferiorThread.is_valid () diff --git a/gdb/python/py-infthread.c b/gdb/python/py-infthread.c index 2637f60..5075071 100644 --- a/gdb/python/py-infthread.c +++ b/gdb/python/py-infthread.c @@ -140,6 +140,18 @@ thpy_get_ptid (PyObject *self, void *closure) 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 (). 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 }, { "ptid", thpy_get_ptid, NULL, "ID of the thread, as assigned by the OS.", NULL }, + { "inferior", thpy_get_inferior, NULL, + "The Inferior object this thread belongs to.", NULL }, { NULL } }; diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 5d773ca..ec2a067 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2016-01-13 Pedro Alves + * gdb.python/py-infthread.exp: Test InferiorThread.inferior. + +2016-01-13 Pedro Alves + * gdb.base/default.exp: Expect $_inferior as well. * gdb.multi/base.exp: Test $_inferior. diff --git a/gdb/testsuite/gdb.python/py-infthread.exp b/gdb/testsuite/gdb.python/py-infthread.exp index 6e02d02..e07fd82 100644 --- a/gdb/testsuite/gdb.python/py-infthread.exp +++ b/gdb/testsuite/gdb.python/py-infthread.exp @@ -44,6 +44,9 @@ gdb_test "python print (t0)" "\\