From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6583 invoked by alias); 4 Jan 2007 19:40:51 -0000 Received: (qmail 6535 invoked by uid 22791); 4 Jan 2007 19:40:51 -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; Thu, 04 Jan 2007 19:40:41 +0000 Received: from drow by nevyn.them.org with local (Exim 4.63) (envelope-from ) id 1H2YS1-0006XS-I0; Thu, 04 Jan 2007 14:40:33 -0500 Date: Thu, 04 Jan 2007 19:40:00 -0000 From: Daniel Jacobowitz To: Nick Roberts Cc: Vladimir Prus , gdb-patches@sources.redhat.com Subject: Re: RFC: MI - Detecting change of string contents with variable objects Message-ID: <20070104194033.GB24634@nevyn.them.org> Mail-Followup-To: Nick Roberts , Vladimir Prus , gdb-patches@sources.redhat.com References: <17797.65268.689590.797944@kahikatea.snap.net.nz> <17798.19683.251190.740216@kahikatea.snap.net.nz> <200612181136.02429.ghost@cs.msu.su> <20061218133827.GA24800@nevyn.them.org> <17799.3497.476593.138858@kahikatea.snap.net.nz> <20070103224605.GO17935@nevyn.them.org> <17820.32496.851404.587153@kahikatea.snap.net.nz> <20070104042038.GA3918@nevyn.them.org> <17820.39505.966623.305338@kahikatea.snap.net.nz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <17820.39505.966623.305338@kahikatea.snap.net.nz> User-Agent: Mutt/1.5.13 (2006-08-11) X-IsSubscribed: yes 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: 2007-01/txt/msg00127.txt.bz2 On Thu, Jan 04, 2007 at 07:10:25PM +1300, Nick Roberts wrote: > + char* print_value = value_get_print_value (value, var->format); Use "char *print_value", please. > gdb_assert (!value_lazy (var->value)); > > ! if (var->print_value) > ! { > ! if (strcmp (var->print_value, print_value)) > ! { > ! xfree (var->print_value); > ! var->print_value = print_value; > ! changed = 1; > ! } > ! } > ! else > ! var->print_value = print_value; Should we set changed = 1 in the "else"? Otherwise the patch seems fine, if it tests OK, but I'm still a little nervous about it. For example, you'll call val_print on a struct or array to see if it's changed. Depending on things like "set print elements", that might not print out the whole string. This is probably a behavior change. Is it a harmless one? If it is, then should we be sharing the code with c_value_of_variable that avoids printing structs, unions, and arrays, and never mark them as changed unless their types change? -- Daniel Jacobowitz CodeSourcery