From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29911 invoked by alias); 31 Jul 2002 20:23:10 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 29903 invoked from network); 31 Jul 2002 20:23:09 -0000 Received: from unknown (HELO zwingli.cygnus.com) (208.245.165.35) by sources.redhat.com with SMTP; 31 Jul 2002 20:23:09 -0000 Received: by zwingli.cygnus.com (Postfix, from userid 442) id 5314D5EA11; Wed, 31 Jul 2002 15:23:08 -0500 (EST) To: Daniel Jacobowitz Cc: gdb-patches@sources.redhat.com Subject: Re: RFA: gdb/568, messy thread exits References: <20020731163910.GA5622@nevyn.them.org> From: Jim Blandy Date: Wed, 31 Jul 2002 13:28:00 -0000 In-Reply-To: <20020731163910.GA5622@nevyn.them.org> Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-07/txt/msg00629.txt.bz2 Daniel Jacobowitz writes: > Jim, what do you think about this change? This fixes a whole class of > problems for me, by not longjmp'ing out of attempts to > kill/detach/quit/etc. I'm not sure I can review this change very helpfully; I'm not very familiar with the threading code. Can you go into more detail about why this change is adequate? I mean, the ptid argument is generally not going to be an lwp, right? Shouldn't this function at least return a ptid that's an LWP? Under what situations does this error occur? > -- > Daniel Jacobowitz Carnegie Mellon University > MontaVista Software Debian GNU/Linux Developer > > 2002-07-31 Daniel Jacobowitz > > Fix PR gdb/568 > * thread-db.c (lwp_from_thread): Only warn if unable to find > the thread. > > Index: thread-db.c > =================================================================== > RCS file: /cvs/src/src/gdb/thread-db.c,v > retrieving revision 1.22 > diff -u -p -r1.22 thread-db.c > --- thread-db.c 23 Mar 2002 17:38:13 -0000 1.22 > +++ thread-db.c 31 Jul 2002 16:29:52 -0000 > @@ -260,6 +260,12 @@ lwp_from_thread (ptid_t ptid) > return ptid; > > err = td_ta_map_id2thr_p (thread_agent, GET_THREAD (ptid), &th); > + if (err == TD_ERR) > + { > + warning ("Cannot find thread %ld: %s", > + (long) GET_THREAD (ptid), thread_db_err_str (err)); > + return ptid; > + } > if (err != TD_OK) > error ("Cannot find thread %ld: %s", > (long) GET_THREAD (ptid), thread_db_err_str (err));