From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27084 invoked by alias); 3 Dec 2001 08:42:56 -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 27046 invoked from network); 3 Dec 2001 08:42:54 -0000 Received: from unknown (HELO cerbere.u-strasbg.fr) (130.79.112.7) by sources.redhat.com with SMTP; 3 Dec 2001 08:42:54 -0000 Received: from laocoon (laocoon.u-strasbg.fr [130.79.112.72]) by cerbere.u-strasbg.fr (8.9.3/8.8.7) with ESMTP id JAA18714 for ; Mon, 3 Dec 2001 09:42:52 +0100 Message-Id: <4.2.0.58.20011203093905.00aca688@ics.u-strasbg.fr> X-Sender: muller@ics.u-strasbg.fr X-Mailer: QUALCOMM Windows Eudora Pro Version 4.2.0.58 Date: Mon, 03 Dec 2001 00:42:00 -0000 To: gdb-patches From: Pierre Muller Subject: Re: [RFA 3rd] tell in which register a register var is. In-Reply-To: <3C07B95D.3000708@cygnus.com> References: <4.2.0.58.20011130122722.00ac94b0@ics.u-strasbg.fr> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-SW-Source: 2001-12/txt/msg00029.txt.bz2 At 17:52 30/11/2001 , Andrew Cagney a écrit: >>2001-11-30 Pierre Muller >>* findvar.c (locate_var_value): Specify in which register a register >> variable is stored. > >Yes, ok. > >However, can you, as a favour, add the assertion I suggested? I agree with your logic - it should be ok. However, I'm currently working on the REGISTER code and would dearly like more assertions so that I can detect earlier my screwups. Committed, modifed as Andrew asked for. Thus I send the patch once more. 2001-11-30 Pierre Muller * findvar.c (locate_var_value): Specify in which register a register variable is stored. Index: findvar.c =================================================================== RCS file: /cvs/src/src/gdb/findvar.c,v retrieving revision 1.25 diff -u -p -r1.25 findvar.c --- findvar.c 2001/11/10 21:34:56 1.25 +++ findvar.c 2001/12/03 08:38:00 @@ -29,6 +29,7 @@ #include "inferior.h" #include "target.h" #include "gdb_string.h" +#include "gdb_assert.h" #include "floatformat.h" #include "symfile.h" /* for overlay functions */ #include "regcache.h" @@ -869,9 +870,21 @@ locate_var_value (register struct symbol switch (VALUE_LVAL (lazy_value)) { case lval_register: + gdb_assert (REGISTER_NAME (VALUE_REGNO (lazy_value)) != NULL + && *REGISTER_NAME (VALUE_REGNO (lazy_value)) != '\0'); + error("Address requested for identifier " + "\"%s\" which is in register $%s", + SYMBOL_SOURCE_NAME (var), + REGISTER_NAME (VALUE_REGNO (lazy_value))); + break; + case lval_reg_frame_relative: - error ("Address requested for identifier \"%s\" which is in a register.", - SYMBOL_SOURCE_NAME (var)); + gdb_assert (REGISTER_NAME (VALUE_FRAME_REGNUM (lazy_value)) != NULL + && *REGISTER_NAME (VALUE_FRAME_REGNUM (lazy_value)) != '\0'); + error("Address requested for identifier " + "\"%s\" which is in frame register $%s", + SYMBOL_SOURCE_NAME (var), + REGISTER_NAME (VALUE_FRAME_REGNUM (lazy_value))); break; default: Pierre Muller Institut Charles Sadron 6,rue Boussingault F 67083 STRASBOURG CEDEX (France) mailto:muller@ics.u-strasbg.fr Phone : (33)-3-88-41-40-07 Fax : (33)-3-88-41-40-99