[PATCH v3 0/7] Thread handle to thread info mapping

Kevin Buettner kevinb@redhat.com
Wed Jul 19 00:42:00 GMT 2017


This patch set introduces support for mapping thread handles to the
thread_info structs which GDB uses to keep track of threads in the
inferiors which it's debugging.  I need this in order to find the GDB
thread which corresponds to a saved thread handle (e.g. pthread_t)
within an implementation of a thread library built atop pthreads.
The mechanism is general enough however to support other thread
handle representations as well.

Simon reviewed the v2 version of these patches and found a number
of problems.  I believe I have addressed all of these in this new
patch set.

Pedro noticed a fundamental problem with v2 patch series - the
mapping operation did not take into account the inferior!  After a
fork, the parent and the child will have the same sets of thread
handles at the same addresses.  These v3 patches also address this
problem.

Part 1 introduces a target method which maps a thread handle to
the corresponding internal GDB thread object, i.e. something of type
`struct thread_info *'.  An implementation of this new method is
provided for the Linux thread target.  Additional work will be
required, over time, for other thread targets.

Part 2 adds a python interface for the mechanism introduced in part 1.

Part 3 is a documentation patch.  It has been adjusted to address Eli's
concerns in an earlier patch series.  Simon also proposed some changes
which I've incorporated.

Part 4 adds a test case.  I've incorporated Simon's suggestions from
his review of the v2 patchset.

Part 5 is a bug fix for a problem discovered while working on part 6.

Part 6 adds support for remote targets.

Part 7 is a documentation patch for the remote protocol changes that
were implemented in part 6.



More information about the Gdb-patches mailing list