From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4671 invoked by alias); 29 Nov 2006 02:08:45 -0000 Received: (qmail 4647 invoked by uid 22791); 29 Nov 2006 02:08:43 -0000 X-Spam-Check-By: sourceware.org Received: from viper.snap.net.nz (HELO viper.snap.net.nz) (202.37.101.8) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 29 Nov 2006 02:08:32 +0000 Received: from kahikatea.snap.net.nz (p202-124-120-131.snap.net.nz [202.124.120.131]) by viper.snap.net.nz (Postfix) with ESMTP id E79C93D9D04 for ; Wed, 29 Nov 2006 15:09:15 +1300 (NZDT) Received: by kahikatea.snap.net.nz (Postfix, from userid 500) id DC172BE452; Wed, 29 Nov 2006 15:04:11 +1300 (NZDT) From: Nick Roberts MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17772.60058.228181.835591@kahikatea.snap.net.nz> Date: Wed, 29 Nov 2006 02:08:00 -0000 To: gdb-patches@sources.redhat.com Subject: Re: Variable objects laziness X-Mailer: VM 7.19 under Emacs 22.0.91.6 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: 2006-11/txt/msg00364.txt.bz2 With the new changes to varobj.c, -var-assign doesn't work for references. (gdb) -var-create - * rx ^done,name="var1",numchild="0",type="int &" ... (gdb) -var-update --all-values var1 ^done,changelist=[{name="var1",value="@0xbff72ebc: 4",in_scope="true",type_chan ged="false"}] (gdb) -var-evaluate-expression var1 ^done,value="@0xbff72ebc: 4" (gdb) --var-assign var1 8 ~"varobj.c:2143: internal-error: c_value_of_variable: Assertion `!value_lazy (v ar->value)' failed.\n" ~"A problem internal to GDB has been detected,\n" ~"further debugging may prove unreliable.\n" ~"Quit this debugging session? (y or n) " ~"\n" Also -var-update only reports a change when the address changes and not the value. Variable objects were broken before but in a different way (-var-assign worked but -var-update always reported that the reference value had changed). I think a further call to coerce_array is needed and the output to -var-update should look like: -var-update --all-values var1 ^done,changelist=[{name="var1",value="4",in_scope="true",type_chan ged="false"}] i.e the address shouldn't appear in the value field. -- Nick http://www.inet.net.nz/~nickrob