From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2091 invoked by alias); 14 Apr 2006 13:15:58 -0000 Received: (qmail 2083 invoked by uid 22791); 14 Apr 2006 13:15:57 -0000 X-Spam-Check-By: sourceware.org Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17) by sourceware.org (qpsmtpd/0.31.1) with ESMTP; Fri, 14 Apr 2006 13:15:55 +0000 Received: from drow by nevyn.them.org with local (Exim 4.54) id 1FUO9N-0003Ww-Hv; Fri, 14 Apr 2006 09:15:49 -0400 Date: Fri, 14 Apr 2006 13:25:00 -0000 From: Daniel Jacobowitz To: Vladimir Prus , Jim Ingham Cc: gdb@sources.redhat.com Subject: Re: -var-update and address changes Message-ID: <20060414131549.GC12955@nevyn.them.org> Mail-Followup-To: Vladimir Prus , Jim Ingham , gdb@sources.redhat.com References: <1A00C3C1-BDF5-489E-A36A-A1E5C20E102A@apple.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1A00C3C1-BDF5-489E-A36A-A1E5C20E102A@apple.com> User-Agent: Mutt/1.5.8i X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2006-04/txt/msg00183.txt.bz2 On Wed, Apr 12, 2006 at 04:04:36PM +0400, Vladimir Prus wrote: > I'm running into what looks like a bug in -var-update. Basically, I create a > varobj with "&variable", then I enter a function that has a variable with > the same name, and -var-update does not report anything. I think we've concluded that this is a feature, not a bug... > The value of "&i" changes, but -var-update does not report this. This can be > explained by the fact that varobjs are "bound" to the stack frame where > they were created, but that "binding" is not mentioned in documentation. ... and adding this to the manual would be welcome. > The problem I'm trying to solve is this: > 1. In some frame, I create varobj for 'i'. > 2. After continue, I see that there's local variable 'i', and I want to find > out if previously-created varobj can be used to show this local 'i', or if > I should create new 'i'. OK, so, you need to map this to a frame. Apple outputs the frame address. I think this is pretty nasty; frame IDs ought to be opaque in the interface (e.g. in case we change their contents again)... Jim, what does your front end do with the frame IDs? Is there anything besides testing for equality? If there is, we can use unique opaque identifiers instead; personally I'm much happier with that. The best unique identifier might in fact be the contents of the frame ID; I'm just trying to define how clients are allowed to interpret it, hopefully not at all. > Can somebody suggest the right fix? So far, I think that the simplest > approach is to make gdb print stack address of current frame, like is done > on the Apple branch: > > 553^done,stack=[frame= > {level="0",addr="0x00003db0",fp="0xbffff2c0",...... > > That way, frontend can deal with the issue of frame stacks themself, and > -var-update will be only used when single-stepping inside a given frame. > Will patches to implement this be welcome? I guess. It seems reasonable. The MI working group list is now open; should we move this sort of conversation there? -- Daniel Jacobowitz CodeSourcery