From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25251 invoked by alias); 24 Jul 2004 00:45:37 -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 25244 invoked from network); 24 Jul 2004 00:45:36 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sourceware.org with SMTP; 24 Jul 2004 00:45:36 -0000 Received: from drow by nevyn.them.org with local (Exim 4.34 #1 (Debian)) id 1BoAeP-00045M-Rh; Fri, 23 Jul 2004 20:44:34 -0400 Date: Sat, 24 Jul 2004 00:45:00 -0000 From: Daniel Jacobowitz To: Jim Blandy Cc: gdb-patches@sources.redhat.com Subject: Re: RFA: assert that target_fetch_registers did its job Message-ID: <20040724004433.GA15591@nevyn.them.org> Mail-Followup-To: Jim Blandy , gdb-patches@sources.redhat.com References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.5.1+cvs20040105i X-SW-Source: 2004-07/txt/msg00341.txt.bz2 On Fri, Jul 23, 2004 at 05:59:11PM -0500, Jim Blandy wrote: > > Does anyone see anything wrong with this? Should it be an error, or a > warning, instead of an internal error? It seems to me that the error > should be furnished by the target-specific code; if > target_fetch_registers returns silently, it should have done its job. It shouldn't be an error. internal-error makes the most sense to me; if we need to relax it while some broken target is worked on, then it should be a warning or silent. > But thread_db_fetch_registers doesn't follow that assumption. In the > threaded case, given any register number, it fetches the gprs, and the > fprs, supplies them, and assumes its job is done. It seems to me it > sholud be calling register_valid_p (current_regcache, regno) to check > that the register's value has really been supplied, and complaining if > it hasn't. I suggest we slay thread_db_fetch_registers. Once upon a time, it served a purpose. Now it is nothing but a source of problems. We could pass opaque cookies rather than register data through the gregset structure - the interface doesn't really support this but at least two of the five thread-db implementations I'm aware of would. Or we could just give up, use thread-db for nothing besides finding new threads, and ask the LWP for its registers directly without six or eight call frames of indirection. -- Daniel Jacobowitz