This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1/1] gdb, python: update threads in Inferior.threads ()


On 07/24/2012 09:11 AM, markus.t.metzger@intel.com wrote:
> From: Markus Metzger <markus.t.metzger@intel.com>
> 
> When querying an inferior's threads in Python in a remote debugging
> configuration, only the already known threads are returned.

Thanks.

> Update the thread list in infpy_threads () before creating the Python objects.
> 
> 2012-07-24 Markus Metzger <markus.t.metzger@intel.com>
> 
> gdb/python/
> 	* py-inferior.c (infpy_threads): Call update_thread_list ().>

ChangeLog paths are relative, so in these entries you do not need the
"gdb" section.  Also the path and entry should be appended to be on
the same line. E.g.:

2012-07-24 Markus Metzger <markus.t.metzger@intel.com>
 
    * python/py-inferior.c (infpy_threads): Call update_thread_list ().


> gdb/testsuite/gdb.python/
> 	* py-threads.c: New file.
> 	* py-threads.exp: New file.
> 

The testsuite has its own ChangeLog located in testsuite/, so these
entries need to go there.  Also, the paths are relative too, so no
"gdb/testsuite" in those entries.

> diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c
> index 2b229be..22adf8c 100644
> --- a/gdb/python/py-inferior.c
> +++ b/gdb/python/py-inferior.c
> @@ -300,6 +300,11 @@ infpy_threads (PyObject *self, PyObject *args)
>    struct threadlist_entry *entry;
>    inferior_object *inf_obj = (inferior_object *) self;
>    PyObject *tuple;
> +  volatile struct gdb_exception except;
> +
> +  TRY_CATCH (except, RETURN_MASK_ALL)
> +    update_thread_list ();
> +  GDB_PY_HANDLE_EXCEPTION (except);
>  
>    INFPY_REQUIRE_VALID (inf_obj);

If the inferior is no longer around, then updating the thread list is
invalid.  update_thread_list and the associated thread exception code
should be hoisted below the inferior validity check performed in
INFPY_REQUIRE_VALID.

> diff --git a/gdb/testsuite/gdb.python/py-threads.c b/gdb/testsuite/gdb.python/py-threads.c
> new file mode 100644

> diff --git a/gdb/testsuite/gdb.python/py-threads.exp b/gdb/testsuite/gdb.python/py-threads.exp
> new file mode 100644

py-inferior has its own series of test cases in py-inferior.exp, with the test
inferior being py-inferior.c.  I would prefer it if we could keep
these tests as one unit.  Could you try merging the two testcases?

Thanks

Phil


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]