This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] Don't use thread_db on corefiles
- From: Michael Snyder <msnyder at redhat dot com>
- To: Daniel Jacobowitz <drow at mvista dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Thu, 03 Jan 2002 17:06:55 -0800
- Subject: Re: [RFA] Don't use thread_db on corefiles
- Organization: Red Hat, Inc.
- References: <20011213114847.A17989@nevyn.them.org>
Daniel Jacobowitz wrote:
>
> This patch fixes a really frustrating internal error when you open the
> coredump of a multithreaded application. Depending on your kernel, either
> the core has threads (corefile.c supports this just fine) or it doesn't.
> Neither way will opening libthread_db work right.
>
> This patch isn't quite complete, because strange things happen when you
> connect to a remote target too. But fixing that requires a little more
> fiddling.
>
> Is this OK?
Daniel, sorry for the delay in getting back to you on this.
Now that I've had a chance to think about it, I agree that
this is the right thing to do. Only I'd like to make it
a separate "if" and just goto quit -- since it is not
related to the "if" that's in there now. Is that OK
with you?
If you want you can just check in your patch as is,
and I'll make mine as a separate change.
Michael
>
> --
> Daniel Jacobowitz Carnegie Mellon University
> MontaVista Software Debian GNU/Linux Developer
>
> 2001-12-13 Daniel Jacobowitz <drow@mvista.com>
>
> * thread-db.c (thread_db_new_objfile): Don't use thread_db on
> corefiles.
>
> Index: thread-db.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/thread-db.c,v
> retrieving revision 1.18
> diff -u -r1.18 thread-db.c
> --- thread-db.c 2001/10/13 15:04:02 1.18
> +++ thread-db.c 2001/12/13 16:43:08
> @@ -482,7 +482,9 @@
> {
> td_err_e err;
>
> - if (objfile == NULL)
> + /* Don't attempt to use thread_db on targets which can not run
> + (core files). */
> + if (objfile == NULL || !target_has_execution)
> {
> /* All symbols have been discarded. If the thread_db target is
> active, deactivate it now. */