From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27385 invoked by alias); 20 Oct 2008 16:08:10 -0000 Received: (qmail 26973 invoked by uid 22791); 20 Oct 2008 16:08:09 -0000 X-Spam-Check-By: sourceware.org Received: from ti-out-0910.google.com (HELO ti-out-0910.google.com) (209.85.142.191) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 20 Oct 2008 16:07:34 +0000 Received: by ti-out-0910.google.com with SMTP id d10so974572tib.12 for ; Mon, 20 Oct 2008 09:07:31 -0700 (PDT) Received: by 10.110.52.1 with SMTP id z1mr5112830tiz.20.1224518850919; Mon, 20 Oct 2008 09:07:30 -0700 (PDT) Received: by 10.110.42.9 with HTTP; Mon, 20 Oct 2008 09:07:30 -0700 (PDT) Message-ID: Date: Mon, 20 Oct 2008 16:08:00 -0000 From: teawater To: "Michael Snyder" Subject: Re: [discuss] semantics, "replay debugging" vs. "reverse debugging" Cc: gdb@sourceware.org In-Reply-To: <48FBDA34.6020104@vmware.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <48FBDA34.6020104@vmware.com> 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: 2008-10/txt/msg00076.txt.bz2 On Mon, Oct 20, 2008 at 09:09, Michael Snyder wrote: > Just to make sure we're all on the same page, > I'm gonna state what I believe is true, and invite > discussion or contradiction. > > Replay debugging --> ability to record an execution > sequence and "play it back" (repeat it) with some > degree of determinism. > > Reverse debugging --> ability to make the inferior > process "back up" to a previous state, eg. reverse > step and reverse continue-to-breakpoint. > > They're related but not identical. One could theoretically > have one without the other, although in practice all > presently existing reverse-debug targets (that I know of) > are implemented by using record and replay. > > One could have reverse without record/replay if, > for instance, one had a machine architecture where > all instructions were reversable, ie. the machine > itself could reverse-execute an instruction. I think maybe some instruction can do it. Such as add instruction. When it forward execute, it add some number to a value of register. When it reverse, it can sub this number from the value of register. It can reverse without record. In P record, I make a interface to use it in record_t need_dasm. But I still not use it. Maybe I can use it in the future. > > And an example of a record/replay implementation > without reverse debugging capability would be > Michael Chastain's (circa 1999) implementation > of Linux system-call based record and replay, which > could deterministically replay a recorded program > execution, but did not have reverse-step or > reverse-continue-to-breakpoint. >