This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [rfa] Include the LWP in thread-db's PTIDs


On Mon, Oct 11, 2004 at 12:16:46PM -0400, Andrew Cagney wrote:

>I hadn't thought about the core issue; I'll do some pondering. However,
>I don't think your comment is quite right.  Thread_db can not be
>layered over core files, we've already decided that - it's too iffy to
>find the right thread_db, not to mention cross-debugging issues.  And
>similarly we can't use it for remote thread debugging.  Thread_db only
>makes any sense on top of local, running, native threads.


"we"'ve definitly not decided this.


Long ago you committed a hack to stop GDB layering thread-db over core files. It was to stop GDB barfing on native GNU/Linux core files. It had the side effect of breaking threads on all other systems, namely solaris. What keeps being pointing out is that thread-db should be loaded over a core file, and not doing it is broken.

If we try it and it barfs, we've a bug. But what we've not got is an excuse for hobble native support (just because embedeed debuging is "iffy").


Huh?  It was a change to thread-db.c which has never been used for
Solaris, so I haven't got any idea what you are talking about.  I did
not break Solaris threads.

Then on that front, then I'm now wrong (and not shy in admitting it ;-) ("but" in my defence at the time the expectation was that thread-db.c would be used by solaris :-).


Also, it was an approved patch.  Michael responded at the end of the
thread saying that he agreed it was the right thing not to use
thread_db on core files.  Yes, there was a lot of disagreement before
that; but before the patch was committed the thread-db.c maintainer
agreed that we should not to use thread_db in this case.  I think I'm
justified in saying that "we" have decided this.

But here on this technical matter I'm not.


The discussion starts here (there's a bit in the next month):
http://sources.redhat.com/ml/gdb-patches/2001-12/msg00345.html
please read it.

Your position was that:

On Thu, Dec 13, 2001 at 06:56:36PM -0500, Daniel Jacobowitz wrote:
Thread_db, as things stand, does not work on core files.  Is preventing
it from trying, and thus crashing GDB, really such a disruptive
suggestion?

OK, that came out a little harsher than I really wanted it. Sorry.


I'd like to apply this patch and then add an entry to TODO about
how it "should be done".  Is that better?

because:


Sounds like that is the bug to fix. Enabling event reporting probably doesn't make much sense when the target is lifeless.

I was about to try a patch for this when I realized that my primary objection still holds.

This only works if you're debugging on a very similar host to the one
the core was dumped on.  If you've got, say, a glibc 2.1.3 host and are
looking at a glibc 2.2.3 core... well, you can provide target libraries
and make GDB use those, but there's no way to provide a cross
libthread_db.

Given that this was "hard" Michael approved the change (a sound technical decision).


Just like on Solaris and consistent with the original thread, the user-level thread library should be loaded over the core file as only by doing that can user-level thread information be displayed.

If this makes cross debugging "iffy", fix the bugs, don't cripple GDB for it's native users.

Andrew



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]