This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
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