This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH v3 0/7] Thread handle to thread info mapping
- From: Kevin Buettner <kevinb at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Tue, 18 Jul 2017 17:41:56 -0700
- Subject: [PATCH v3 0/7] Thread handle to thread info mapping
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=kevinb at redhat dot com
- Dkim-filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 968AAC04B92E
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 968AAC04B92E
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.