From: Daniel Jacobowitz <drow@mvista.com>
To: Andrew Cagney <ac131313@cygnus.com>
Cc: Jim Blandy <jimb@redhat.com>, gdb@sources.redhat.com
Subject: Re: GDB support for thread-local storage
Date: Mon, 24 Jun 2002 07:53:00 -0000 [thread overview]
Message-ID: <20020624145311.GA3804@branoic.them.org> (raw)
In-Reply-To: <3D149649.8050403@cygnus.com>
On Sat, Jun 22, 2002 at 11:22:49AM -0400, Andrew Cagney wrote:
> >Sorry, I'm lost here.
> >>
> >>Say, instead of a libthread_db, we had gdb/libthread-db.c which could be
> >>compiled on all systems. It would have some sort of procedural
> >>interface, and would grub around in target data to find thread X lwp
> >>maps. However, it could be written in a way that was host architecture
> >>netural.
> >
> >
> >Sure. But the design of libthread_db says, "I am 100% coupled to the
> >private structure of this thread implementation. I must match its
> >version exactly if you want predictable results. My details can change
> >in minor revisions or even more frequently." That's not part of the
> >implementation; it's more like the purpose of the design. It is a
> >layer between implementation-specific details with no guaranteed
> >structure and a structured client interface.
>
> Right.
>
> But what is stopping us picking up that code, compiling it on the host
> (not target), and then using it in GDB?
Version skew primarily. If you examine the way that libthread_db works
in GNU libc, you'll see that it knows the offset to various private
data structures by including the internal linuxthreads implementation
header. These can change between minor point-releases of glibc. We
could detect the version string and have lists of offsets that way but
it would mean updating GDB for every new version of glibc. This is
probably feasible but mitigates the value of thread_db greatly; the
principal advantage was separating the debugger from knowledge of the
threads implementation. We'd have to build target data structures (the
way that C++ ABI support does) and their types can vary greatly
architecture to architecture. If we require libpthread.so to contain
debugging information it would be a little more practical, maybe...
On Solaris this isn't even an option of course. If we don't use the
system libthread_db we have no way to duplicate its functionality.
> >Without imposing structure on that data, I don't think it'll ever be
> >possible to have a gdb/libthread-db.c.
>
> We'll never be able to have a single libthread-db.c file but we should
> at least be able to get the interface defined, and the code implemented,
> in a way that makes it possible for it to be used on the host.
Perhaps for a limited set of (target arch, target lib version) pairs.
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer
next prev parent reply other threads:[~2002-06-24 14:53 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-06-19 9:00 Jim Blandy
2002-06-19 10:08 ` Daniel Berlin
2002-06-19 12:20 ` Jim Blandy
2002-06-19 13:12 ` Daniel Berlin
2002-06-19 13:40 ` Jim Blandy
2002-06-20 18:35 ` Andrew Cagney
2002-06-20 18:48 ` Daniel Jacobowitz
2002-06-21 10:18 ` Andrew Cagney
2002-06-21 10:32 ` Daniel Jacobowitz
2002-06-21 13:08 ` Jim Blandy
2002-06-21 13:18 ` Daniel Jacobowitz
2002-06-21 13:54 ` Jim Blandy
2002-06-21 14:03 ` Daniel Jacobowitz
2002-06-21 14:46 ` Andrew Cagney
2002-06-21 14:55 ` Daniel Jacobowitz
2002-06-21 15:31 ` Andrew Cagney
2002-06-21 22:59 ` Daniel Jacobowitz
2002-06-22 8:22 ` Andrew Cagney
2002-06-24 7:53 ` Daniel Jacobowitz [this message]
2002-06-21 16:14 ` Jim Blandy
2002-06-21 22:57 ` Daniel Jacobowitz
2002-06-26 12:37 ` Jim Blandy
2002-06-21 13:20 ` Daniel Jacobowitz
2002-06-21 15:37 ` Jim Blandy
2002-06-21 23:00 ` Daniel Jacobowitz
2002-06-21 12:34 ` Jim Blandy
2002-06-21 12:49 ` Jim Blandy
2002-06-21 18:10 ` Jim Blandy
2002-06-21 20:24 ` Andrew Cagney
2002-06-21 21:09 ` Jim Blandy
2002-06-22 8:31 ` Andrew Cagney
2002-06-21 15:04 ` Andrew Cagney
2002-06-21 15:41 ` Jim Blandy
2002-06-21 15:59 ` Andrew Cagney
2002-06-21 16:08 ` Jim Blandy
2002-06-22 1:04 ` unsuscribe phi
[not found] <1024952640.13693.ezmlm@sources.redhat.com>
2002-06-25 1:48 ` GDB support for thread-local storage James Cownie
2002-06-25 8:05 ` Daniel Jacobowitz
2002-06-25 8:31 ` James Cownie
2002-06-25 8:42 ` Daniel Jacobowitz
2002-06-25 8:53 ` James Cownie
2002-06-25 8:56 ` Daniel Jacobowitz
2002-06-25 9:11 ` James Cownie
2002-06-25 9:29 ` Daniel Jacobowitz
2002-06-25 10:44 ` Andrew Cagney
2002-06-25 10:02 ` Daniel Jacobowitz
2002-06-26 12:45 ` Jim Blandy
2002-06-26 19:31 ` Andrew Cagney
2002-06-26 21:57 ` Jim Blandy
2002-06-27 8:13 ` Andrew Cagney
2002-08-19 9:05 ` 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=20020624145311.GA3804@branoic.them.org \
--to=drow@mvista.com \
--cc=ac131313@cygnus.com \
--cc=gdb@sources.redhat.com \
--cc=jimb@redhat.com \
/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