From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26518 invoked by alias); 3 Mar 2008 21:12:11 -0000 Received: (qmail 26510 invoked by uid 22791); 3 Mar 2008 21:12:10 -0000 X-Spam-Check-By: sourceware.org Received: from mtagate3.de.ibm.com (HELO mtagate3.de.ibm.com) (195.212.29.152) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 03 Mar 2008 21:11:49 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate3.de.ibm.com (8.13.8/8.13.8) with ESMTP id m23LBkXS159548 for ; Mon, 3 Mar 2008 21:11:46 GMT Received: from d12av02.megacenter.de.ibm.com (d12av02.megacenter.de.ibm.com [9.149.165.228]) by d12nrmr1607.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v8.7) with ESMTP id m23LBkaY1314828 for ; Mon, 3 Mar 2008 22:11:46 +0100 Received: from d12av02.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id m23LBjje028745 for ; Mon, 3 Mar 2008 21:11:45 GMT Received: from bbkeks.de.ibm.com (dyn-9-152-248-39.boeblingen.de.ibm.com [9.152.248.39]) by d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id m23LBimj028727 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 3 Mar 2008 21:11:45 GMT Message-ID: <47CC6990.7080400@de.ibm.com> Date: Mon, 03 Mar 2008 21:12:00 -0000 From: Markus Deuling User-Agent: Thunderbird 2.0.0.12 (X11/20080213) MIME-Version: 1.0 To: gdb-patches@sourceware.org CC: Michael Snyder , Mark Kettenis , Daniel Jacobowitz , uweigand@de.ibm.com Subject: Re: [patch] Add proper error message instead of gdb_assert References: <47CC5332.3020700@de.ibm.com> <200803031955.m23Jt7cj019540@brahms.sibelius.xs4all.nl> <1204576131.19253.582.camel@localhost.localdomain> <20080303203858.GA22316@caradoc.them.org> In-Reply-To: <20080303203858.GA22316@caradoc.them.org> Content-Type: multipart/mixed; boundary="------------090007050602050906050201" Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-03/txt/msg00024.txt.bz2 This is a multi-part message in MIME format. --------------090007050602050906050201 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 717 Daniel Jacobowitz schrieb: > On Mon, Mar 03, 2008 at 12:28:51PM -0800, Michael Snyder wrote: >> On Mon, 2008-03-03 at 20:55 +0100, Mark Kettenis wrote: >> >>> Sorry, but I don't see why your error message is "proper". The >>> gdb_assert() should never fail; the fact that it does means that you >>> have a bug elsewhere in gdb. >> Isn't that what the "internal error" call is for? > > gdb_assert calls internal_error anyway. > What about the attached patch? It gives an error message in value_assign if you try to access lval_register < 0. I guess this is much better for the user than a crashed GDB session. What do you think ? -- Markus Deuling GNU Toolchain for Linux on Cell BE deuling@de.ibm.com --------------090007050602050906050201 Content-Type: text/plain; name="fix-fortran-2" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="fix-fortran-2" Content-length: 697 diff -urpN gdb-6.7-orig/gdb/valops.c gdb-6.7/gdb/valops.c --- gdb-6.7-orig/gdb/valops.c 2007-08-23 20:08:46.000000000 +0200 +++ gdb-6.7/gdb/valops.c 2008-03-03 22:05:59.000000000 +0100 @@ -623,10 +623,12 @@ value_assign (struct value *toval, struc struct frame_info *frame; int value_reg; - /* Figure out which frame this is in currently. */ - frame = frame_find_by_id (VALUE_FRAME_ID (toval)); value_reg = VALUE_REGNUM (toval); + if (value_reg < 0) + error (_("Invalid register %d"), value_reg); + /* Figure out which frame this is in currently. */ + frame = frame_find_by_id (VALUE_FRAME_ID (toval)); if (!frame) error (_("Value being assigned to is no longer active.")); --------------090007050602050906050201--