From: Daniel Jacobowitz <drow@false.org>
To: Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
Cc: gdb@sourceware.org
Subject: Re: GDB doesn't display thread_id while debugging a core file
Date: Tue, 07 Aug 2007 11:31:00 -0000 [thread overview]
Message-ID: <20070807113112.GA24874@caradoc.them.org> (raw)
In-Reply-To: <46B790BA.2040805@linux.vnet.ibm.com>
On Mon, Aug 06, 2007 at 06:20:58PM -0300, Carlos Eduardo Seo wrote:
> > The thread ID is produced by NPTL's libthread_db library,
> Yes, and this number is also an address, the thread pointer used to
> access the TCB, as it is defined in the TLS definitions in the ABI.
> So, there's no magic involved. :)
That's incorrect. The fact that pthread_self, and thus libthread_db,
use a pointer to the "struct pthread" as their thread ID is an
internal implementation detail of NPTL, i.e. subject to change. That
means it's the province of libthread_db. We don't have any flag to
indicate that it will be the case unless we ask the library for the ID.
For instance, if you do this then you'll start showing the TLS pointer
as a thread ID for LinuxThreads applications. But they used a
different numbering scheme.
An architecture method to get at the thread pointer directly would
still be useful, by the way - we've talked about that for accessing
__thread variables without debug info.
> > Now that most platforms have moved from LinuxThreads to NPTL, this
> > might be worth another look. Opportunistically, sometimes we can use
> > libthread_db and get sensible answers.
> This may be a silly question, but, how can we use libthread_db in
> order to get the thread ID from threads within a core file?
If we assume that the host's libthread_db will either recognize the
core file and do the right thing, or reject the core file, then we can
write a small target layer that uses it on top of corelow.c in a
similar way to how linux-thread-db.c / proc-service.c use linux-nat.c.
It's just a matter of testing that on a couple of different setups,
like LinuxThreads and cross debuggers, to see how it behaves. Or
doesn't behave.
--
Daniel Jacobowitz
CodeSourcery
next prev parent reply other threads:[~2007-08-07 11:31 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-06 20:27 Carlos Eduardo Seo
2007-08-06 20:33 ` Daniel Jacobowitz
2007-08-06 21:21 ` Carlos Eduardo Seo
2007-08-07 11:31 ` Daniel Jacobowitz [this message]
2007-08-08 19:13 msnyder
2007-08-08 19:21 ` Daniel Jacobowitz
2008-04-15 3:05 Icarus Sparry
2008-04-15 3:10 ` Michael Snyder
2008-04-15 6:54 ` Icarus Sparry
2008-04-15 8:12 ` Daniel Jacobowitz
2008-04-15 18:17 ` Michael Snyder
2008-04-15 20:46 ` Icarus Sparry
2008-04-15 23:48 ` Daniel Jacobowitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070807113112.GA24874@caradoc.them.org \
--to=drow@false.org \
--cc=cseo@linux.vnet.ibm.com \
--cc=gdb@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox