From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17329 invoked by alias); 19 Oct 2009 18:23:08 -0000 Received: (qmail 17320 invoked by uid 22791); 19 Oct 2009 18:23:07 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from smtp-outbound-2.vmware.com (HELO smtp-outbound-2.vmware.com) (65.115.85.73) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 19 Oct 2009 18:23:01 +0000 Received: from mailhost4.vmware.com (mailhost4.vmware.com [10.16.67.124]) by smtp-outbound-2.vmware.com (Postfix) with ESMTP id A0A6A3D02B; Mon, 19 Oct 2009 11:22:59 -0700 (PDT) Received: from [10.20.94.141] (msnyder-server.eng.vmware.com [10.20.94.141]) by mailhost4.vmware.com (Postfix) with ESMTP id 96745C9AFF; Mon, 19 Oct 2009 11:22:59 -0700 (PDT) Message-ID: <4ADCAD14.3080407@vmware.com> Date: Mon, 19 Oct 2009 18:24:00 -0000 From: Michael Snyder User-Agent: Thunderbird 1.5.0.12 (X11/20080411) MIME-Version: 1.0 To: Marc Khouzam CC: 'Hui Zhu' , "'gdb@sourceware.org'" Subject: Re: [FYI] tutorial for process record and reverse debugging References: <4ADA4BD8.6080800@vmware.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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-10/txt/msg00309.txt.bz2 Marc Khouzam wrote: >> -----Original Message----- >> From: gdb-owner@sourceware.org >> [mailto:gdb-owner@sourceware.org] On Behalf Of Hui Zhu >> Sent: Monday, October 19, 2009 8:57 AM >> To: Marc Khouzam >> Cc: Michael Snyder; gdb@sourceware.org >> Subject: Re: [FYI] tutorial for process record and reverse debugging >> >>> But from reading the tutorial I see that it may be of >> interest in some situations. >>> What bothers me though is that one must disable all >> breakpoints and then re-enable >>> them. This can be a bit of an annoyance, especially if >> some bps were already disabled. >>> I got to wonder if this doesn't call for a new command; >> something like >>> "record live", which would take us to the end of the >> recording while not needing the >>> user to deal with existing breakpoints. >>> >>> What do you think? >>> >>> Marc >>> >> Sorry Marc, I cannot understand it. Could you please tell me which >> status need "disable all breakpoints and then re-enable them"? > > In the tutorial, around the middle of section > "Continue, reverse-continue, and breakpoints" > it mentions that after doing some reverse execution, we may be > "now ready to resume where we left off". > > From what I understand this means that the user may decide that she > is done with reverse execution and wants to go back to executing > the live program. To do this, we need to disable all bps, do a > 'continue' and then (optionally) re-enable all bps. > > If going straight to the end of the recording log is a valuable > feature, I was thinking it may deserve its own command. > > Ultimately, I'm hoping that with such a command, we can then see > if we can have PRecord directly jump from recorded execution > to live execution without stopping. > > I'm hoping to get opinions from you experts, as I'm not sure it is > a good idea. OK, so good discussion. Let's cover some bases here. 1) I'm in record mode, and I want to stay in record mode. No brainer -- that's the default behavior. 2) I'm in record mode, and I want to go to replay mode. Currently the only way to do that is to give a "reverse" command (reverse step, reverse continue...) That's not too bad, but sometimes I might want to simply go to the beginning of the log and start replaying forward from the beginning (ie. not backwards from the end. Or, I might even want to goto the middle before I start to replay (in either direction). We can do that now by using breakpoints, but we might have to disable other breakpoints, if there are any. But we COULD do it if we had a command like "goto beginning", or "goto bookmark 12". 3) I'm in replay mode, possibly in the middle of the recording, and I want to switch to record mode. Now there are several branching possibilities: Do I want to: a) Go to the end and start appending to the existing log? b) Truncate the existing log at the point where I am, and start appending to the prefix? c) Discard the existing log and start a new log from the point where I am? d) Go back to the beginning, discard the existing log, and start a new log from the beginning? These are all things that I think we can do at present, but not generally with a single command. Maybe we should kick them around. They're all useful, and not far out of reach. They wouldn't, for instance, require that we keep several branching logs around at the same time (although just think what would be possible if we could do that!!! )