From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1354 invoked by alias); 11 Aug 2007 02:21:40 -0000 Received: (qmail 1142 invoked by uid 22791); 11 Aug 2007 02:21:38 -0000 X-Spam-Check-By: sourceware.org Received: from rv-out-0910.google.com (HELO rv-out-0910.google.com) (209.85.198.187) by sourceware.org (qpsmtpd/0.31) with ESMTP; Sat, 11 Aug 2007 02:21:34 +0000 Received: by rv-out-0910.google.com with SMTP id l15so739231rvb for ; Fri, 10 Aug 2007 19:21:32 -0700 (PDT) Received: by 10.142.215.5 with SMTP id n5mr522964wfg.1186798892604; Fri, 10 Aug 2007 19:21:32 -0700 (PDT) Received: by 10.142.72.10 with HTTP; Fri, 10 Aug 2007 19:21:32 -0700 (PDT) Message-ID: Date: Sat, 11 Aug 2007 02:21:00 -0000 From: teawater To: gdb@sources.redhat.com Subject: Re: GDB record target 0.0.1 for GDB-6.6 release (It make GDB support Reversible Debugging) In-Reply-To: <20070810181817.GA11548@caradoc.them.org> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20070810181817.GA11548@caradoc.them.org> 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: 2007-08/txt/msg00104.txt.bz2 On 8/11/07, Daniel Jacobowitz wrote: > On Fri, Aug 10, 2007 at 05:31:51PM +0800, teawater wrote: > > Hi All, > > > > The attachment is a patch for the GDB-6.6 that will add two commands > > ("record" and "reverse") and a new target "record" to the GDB-6.6. > > > > The command "record" can record running message such as the program pc > > register value and some frame message to a record file that default > > name is "now.rec". > > > > The target "record" can open this record file and debug the program. > > And if the current target is the "record", you can use command > > "reverse" set debug to the reverse debug mode. If you set GDB to the > > reverse debug mode. The program will reverse run. Most of GDB command > > such as "step", "next" and "breakpoint" can be use in this mode. > > > > Maybe the record function can make GDB debug real time program more > > easy than before because you can record all the running message when > > the real time program cannot be interrupt and debug it after it was > > running. > > I took a look at your patch. The record command single steps the > program until it exits, right? That will not be very useful for real > time programs, because it will be extraordinarily slow the first time. > The CPU speed is more and more high. BTW:This command is not very complete. I will make record can only record a part of code. > You might want to take a look at my paper in this year's GCC Summit > proceedings: > > http://gcc.gnu.org/wiki/HomePage?action=AttachFile&do=get&target=GCC2007-Proceedings.pdf > > We'll be publishing the code for "reverse-step" using qemu soon. > We're not trying to hold on to it, especially - just haven't found the > time yet to submit it. This is basically similar to what you've done, > except higher performance. > The user need install a QEMU first? The record can work with host debug and the other target such as sim, remote and don't need other software. BTW: I think if the user want reverse execute to the real past status of program, record all of the running message is the only way. Because a lot of thing cannot be reverse execute such a system call. If the program write some message to a file, howto reverse execute it? Remove this message from the fire? > Actually, your work also reminds me of Amber: > http://weblogs.mozillazine.org/roc/archives/2006/12/more_about_ambe.html > > -- > Daniel Jacobowitz > CodeSourcery >