From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15749 invoked by alias); 20 Jul 2009 03:27:04 -0000 Received: (qmail 15738 invoked by uid 22791); 20 Jul 2009 03:27:03 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-px0-f184.google.com (HELO mail-px0-f184.google.com) (209.85.216.184) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 20 Jul 2009 03:26:55 +0000 Received: by pxi14 with SMTP id 14so1469904pxi.10 for ; Sun, 19 Jul 2009 20:26:53 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.147.15 with SMTP id u15mr853749wfd.322.1248060413096; Sun, 19 Jul 2009 20:26:53 -0700 (PDT) In-Reply-To: <6D19CA8D71C89C43A057926FE0D4ADAA07BD7ADC@ecamlmw720.eamcs.ericsson.se> References: <19035.54231.157231.624882@totara.tehura.co.nz> <19035.57129.173542.368393@totara.tehura.co.nz> <4A5CC0E1.7020800@vmware.com> <19037.16041.589932.535743@totara.tehura.co.nz> <6D19CA8D71C89C43A057926FE0D4ADAA07BD6DD6@ecamlmw720.eamcs.ericsson.se> <19039.58589.853319.841012@totara.tehura.co.nz> <6D19CA8D71C89C43A057926FE0D4ADAA07BD7500@ecamlmw720.eamcs.ericsson.se> <20090717142516.GA29249@caradoc.them.org> <6D19CA8D71C89C43A057926FE0D4ADAA07BD7ADC@ecamlmw720.eamcs.ericsson.se> From: Hui Zhu Date: Mon, 20 Jul 2009 03:27:00 -0000 Message-ID: Subject: Re: Reverse debugging To: Marc Khouzam , Nick Roberts Cc: Daniel Jacobowitz , gdb@sources.redhat.com, Michael Snyder Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2009-07/txt/msg00132.txt.bz2 Thanks Marc, but what about I keep it but add some switches for it? I want keep the query to tui user. For example: set record query off set record changememeory on Thanks, Hui On Sun, Jul 19, 2009 at 11:19, Marc Khouzam wrot= e: >> -----Original Message----- >> From: Daniel Jacobowitz [mailto:drow@false.org] >> Sent: July-17-09 10:25 AM >> To: Marc Khouzam >> Cc: Nick Roberts; Hui Zhu; gdb@sources.redhat.com; Michael Snyder >> Subject: Re: Reverse debugging >> >> On Fri, Jul 17, 2009 at 10:12:00AM -0400, Marc Khouzam wrote: >> > I noticed that the previous CDT GDB integration has its console >> > considered >> > a tty. =A0It may be worth looking into the difference... when >> time allows >> > it :-) >> >> Wasn't someone just talking on cdt-dev about trouble with whether DSF >> used Spawner or not? =A0That'd do it. > > I was wrong about the console being a tty. =A0The old CDT GDB integration > console is also not a tty. =A0What they do though is use > 'set confirm off'. =A0That makes sense since queries are being answered > automatically anyway. > > Nick, in your specific case 'confirm off' would work. =A0The default > answer to > 'record stop' is yes (well, there is not default, but in that case, 'y' > is > chosen). =A0If you don't want to always 'set confirm off' you may consider > setting it right before sending 'record stop' and turn it back on > right after. =A0That may be a good enough workaround until there is a > proper > solution to this query problem. > > For me the problem for PRecord remains because the default value is > not always what I want. =A0For example, in PRecord the default answer > to changing memory and loosing the recorded history > is "N", but as a frontend, I want to answer "Y". > > To fix this problem I suggest that in record.c, > we replace 'nquery' with 'query'; that will make the default be 'Y' when > > confirm is off or when there is no tty. =A0Note that this seems to be what > > is being done everywhere else in GDB. =A0There is only one case (pending > breakpoints) that uses default queries, outside of PRecord. =A0Except for > that > one case, it is really only PRecord that uses yquery and nquery. =A0And > the > pending breakpoint case is not a problem for frontends that use MI > because > the MI command does not trigger the query. > > Note that up to now, I've been recompiling GDB with that suggestion > so that I can properly use PRecord in Eclipse. > > The below patch implements the suggestion. > > Thanks > > Marc > > ChangeLog > 2009-07-18 =A0Marc Khouzam =A0 > > =A0 =A0 =A0 =A0* record.c (record_store_registers): Replace nquery with > =A0 =A0 =A0 =A0query to allow frontends to automatically answer 'y'. > =A0 =A0 =A0 =A0(record_xfer_partial): Ditto. > > > ### Eclipse Workspace Patch 1.0 > #P src > Index: gdb/record.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvs/src/src/gdb/record.c,v > retrieving revision 1.8 > diff -u -r1.8 record.c > --- gdb/record.c =A0 =A0 =A0 =A02 Jul 2009 17:21:06 -0000 =A0 =A0 =A0 1.8 > +++ gdb/record.c =A0 =A0 =A0 =A019 Jul 2009 03:06:01 -0000 > @@ -937,13 +937,13 @@ > =A0 =A0 =A0 =A0 =A0/* Let user choose if he wants to write register or no= t. =A0*/ > =A0 =A0 =A0 =A0 =A0if (regno < 0) > =A0 =A0 =A0 =A0 =A0 =A0n =3D > - =A0 =A0 =A0 =A0 =A0 =A0 nquery (_("Because GDB is in replay mode, chang= ing the " > + =A0 =A0 =A0 =A0 =A0 =A0 query (_("Because GDB is in replay mode, changi= ng the " > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"value of a register will = make the execution " > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"log unusable from this po= int onward. =A0" > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"Change all registers?")); > =A0 =A0 =A0 =A0 =A0else > =A0 =A0 =A0 =A0 =A0 =A0n =3D > - =A0 =A0 =A0 =A0 =A0 =A0 nquery (_("Because GDB is in replay mode, chang= ing the > value " > + =A0 =A0 =A0 =A0 =A0 =A0 query (_("Because GDB is in replay mode, changi= ng the > value " > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"of a register will make t= he execution log > unusable " > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"from this point onward. = =A0Change register %s?"), > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0gdbarch_register_name (get_reg= cache_arch > (regcache), > @@ -993,7 +993,7 @@ > =A0 =A0 =A0 if (RECORD_IS_REPLAY) > =A0 =A0 =A0 =A0{ > =A0 =A0 =A0 =A0 =A0/* Let user choose if he wants to write memory or not.= =A0*/ > - =A0 =A0 =A0 =A0 if (!nquery (_("Because GDB is in replay mode, writing = to > memory " > + =A0 =A0 =A0 =A0 if (!query (_("Because GDB is in replay mode, writing to > memory " > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 "will make the execution = log unusable from this > " > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 "point onward. =A0Write m= emory at address %s?"), > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 paddress (target_gdbarch, off= set))) > > > >