From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30561 invoked by alias); 22 Oct 2008 03:26:07 -0000 Received: (qmail 30545 invoked by uid 22791); 22 Oct 2008 03:26:06 -0000 X-Spam-Check-By: sourceware.org Received: from ti-out-0910.google.com (HELO ti-out-0910.google.com) (209.85.142.190) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 22 Oct 2008 03:25:20 +0000 Received: by ti-out-0910.google.com with SMTP id d10so1360180tib.12 for ; Tue, 21 Oct 2008 20:25:17 -0700 (PDT) Received: by 10.110.43.18 with SMTP id q18mr6563644tiq.16.1224645917497; Tue, 21 Oct 2008 20:25:17 -0700 (PDT) Received: by 10.110.42.9 with HTTP; Tue, 21 Oct 2008 20:25:17 -0700 (PDT) Message-ID: Date: Wed, 22 Oct 2008 03:26:00 -0000 From: teawater To: "Jakob Engblom" Subject: Re: [discuss] semantics, "replay debugging" vs. "reverse debugging" Cc: "Michael Snyder" , gdb@sourceware.org In-Reply-To: <007e01c9334e$aad56ff0$00804fd0$@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> <007e01c9334e$aad56ff0$00804fd0$@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/msg00081.txt.bz2 I think your not clear my idea. > 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. Maybe you can read this part again. And what is the status of program? Most of time, it's just the values of registers and memory. Do not think anything that complex. On Tue, Oct 21, 2008 at 15:28, Jakob Engblom wrote: > >> > 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. > > When thinking about overflow semantics, etc., it is clear that this can never > work in general. > > The easiest way to create a reversible system is to > > 1. Impose determinisim > > 2. Make sure you can get back to a previous state > > And then you simply jump back and reexecute until some chosen point in time. > Works like a charm, and is very general. > > /jakob > >