From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6765 invoked by alias); 11 Sep 2009 13:26:23 -0000 Received: (qmail 6755 invoked by uid 22791); 11 Sep 2009 13:26:21 -0000 X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL,BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Received: from imr1.ericy.com (HELO imr1.ericy.com) (198.24.6.9) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 11 Sep 2009 13:26:16 +0000 Received: from eusrcmw751.eamcs.ericsson.se (eusrcmw751.exu.ericsson.se [138.85.77.51]) by imr1.ericy.com (8.13.1/8.13.1) with ESMTP id n8BDQ9bt004913; Fri, 11 Sep 2009 08:26:10 -0500 Received: from eusrcmw751.eamcs.ericsson.se ([138.85.77.56]) by eusrcmw751.eamcs.ericsson.se with Microsoft SMTPSVC(6.0.3790.3959); Fri, 11 Sep 2009 08:24:59 -0500 Received: from eusaamw0707.eamcs.ericsson.se ([147.117.20.32]) by eusrcmw751.eamcs.ericsson.se with Microsoft SMTPSVC(6.0.3790.3959); Fri, 11 Sep 2009 08:24:59 -0500 Received: from EUSAACMS0703.eamcs.ericsson.se ([169.254.1.20]) by eusaamw0707.eamcs.ericsson.se ([147.117.20.32]) with mapi; Fri, 11 Sep 2009 09:24:58 -0400 From: Marc Khouzam To: "'Hui Zhu'" , "'Nick Roberts'" CC: "'Daniel Jacobowitz'" , "'gdb@sources.redhat.com'" , "'Michael Snyder'" Date: Fri, 11 Sep 2009 13:26:00 -0000 Subject: RE: Reverse debugging Message-ID: 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> In-Reply-To: Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 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-09/txt/msg00165.txt.bz2 Hi, the time for 7.0 is fast approaching and I was hoping to have a solution for setting memory during reverse debugging. If you remember, when using Eclipse, the use of nquery() automatically makes the answer be 'N', so I can never set memory during reverse. We didn't reach a consensus on genericallyfixing queries for frontends and I believe the most popular solution was to add a switch to enable/disable this specifc query. Hui, shall I write a patch for this? For simplicity, I would go for=20 set record query which would enable/disable all precord queries. Sound good? Thanks Marc > -----Original Message----- > From: Hui Zhu [mailto:teawater@gmail.com]=20 > Sent: Sunday, July 19, 2009 11:27 PM > To: Marc Khouzam; Nick Roberts > Cc: Daniel Jacobowitz; gdb@sources.redhat.com; Michael Snyder > Subject: Re: Reverse debugging >=20 > 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 >=20 > Thanks, > Hui >=20 >=20 > On Sun, Jul 19, 2009 at 11:19, Marc=20 > Khouzam wrote: > >> -----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=20 > whether DSF > >> used Spawner or not? =A0That'd do it. > > > > I was wrong about the console being a tty. =A0The old CDT GDB=20 > integration > > console is also not a tty. =A0What they do though is use > > 'set confirm off'. =A0That makes sense since queries are=20 > 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=20 > that case, 'y' > > is > > chosen). =A0If you don't want to always 'set confirm off' you=20 > 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=20 > default be 'Y' when > > > > confirm is off or when there is no tty. =A0Note that this=20 > seems to be what > > > > is being done everywhere else in GDB. =A0There is only one=20 > case (pending > > breakpoints) that uses default queries, outside of PRecord.=20 > =A0Except for > > that > > one case, it is really only PRecord that uses yquery and=20 > 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=20 > or not. =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,=20 > changing the " > > + =A0 =A0 =A0 =A0 =A0 =A0 query (_("Because GDB is in replay mode,=20 > changing the " > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"value of a register wil= l make the=20 > execution " > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"log unusable from this = point 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, cha= nging the > > value " > > + =A0 =A0 =A0 =A0 =A0 =A0 query (_("Because GDB is in replay mode, chan= ging the > > value " > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"of a register will make= the execution log > > unusable " > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"from this point onward.= =A0Change=20 > register %s?"), > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0gdbarch_register_name (get_r= egcache_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 no= t. =A0*/ > > - =A0 =A0 =A0 =A0 if (!nquery (_("Because GDB is in replay mode, writin= g 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 executio= n log=20 > unusable from this > > " > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 "point onward. =A0Write= memory at=20 > address %s?"), > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 paddress (target_gdbarch, o= ffset))) > > > > > > > > >=20