Re: [RFA] Don't use thread_db on corefiles

Michael Snyder
2001-12-14T01:14:37Z

Daniel Jacobowitz wrote:
>
> On Thu, Dec 13, 2001 at 03:37:04PM -0800, Andrew Cagney wrote:
> > >On Thu, Dec 13, 2001 at 03:04:07PM -0800, Michael Snyder wrote:
> > >
> > >>OK. I'd like to see that patch when it's ready.
> > >>Do you use only lwp's, or do you use glibc/libpthread threads?
> > >>If you use library threads, are you saving their info in the
> > >>core file, or are you only saving the info for the lwp's?
> > >
> > >
> > >It's completely thread-package-agnostic. I dump all LWPs sharing the
> > >same VM, as a fairly reliable marker (I'd use 2.4 threadgroups, but
> > >LinuxThreads doesn't use them...)
> >
> >
> > Ok. So you're dumping out the raw data that libthread-db would use to
> > recreate the current thread state from the raw LWP state.
> >
> >
> > >So there is enough information there for lin-lwp to parse the threads,
> > >if we stubbed out its attempts to write, I expect. But since the
> > >current Linux threads model has one thread per process, I can simply
> > >use the corefile.c thread support instead, which I'd rather do.
> >
> >
> > Er, careful. I think lin-lwp should be fixed. lin-lwp should be
> > interpreting the raw LWP data translating it into user level threads.
> > (Why it writes to the target just sounds like a bug.)
>
> Strongly object.
>
> Why? Because thread_db is only usable natively! lin-lwp is not fit
> for cross or remote debugging and never can be.

Maybe so -- maybe not. But at the moment we're talking about core
files.
Let's keep to one discussion at a time.

> I am testing with MIPS
> cores on an x86-linux host. Right now it "works" because thread-db is
> not compiled in; if I had an --enable-targets=i386-linux,mipsel-linux
> it would be, though.

Assuming your MIPS remote target is multi-threaded, that would
definitely
confuse thread-db, yes. But why would you want to do that?

It seems like you are maybe trying to be more multi-arch than
thread-db is designed for. If the problem is that thread-db
is not multi-arch enough, then let's address that problem.

> If you want to break lin-lwp up into pieces such that one of them can
> do this, you might as well abandon using thread_db at all. The kernel
> has enough information to tell you about all the threads; it does so.

Hold on -- I think we're having too many conversations at once.
The kernel doesn't know anything about glibc threads, which are
the only threads that thread-db is concerned with.