From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7630 invoked by alias); 21 Oct 2008 07:29:37 -0000 Received: (qmail 7621 invoked by uid 22791); 21 Oct 2008 07:29:36 -0000 X-Spam-Check-By: sourceware.org Received: from dns.vtab.com (HELO oden.vtab.com) (62.20.90.195) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 21 Oct 2008 07:28:55 +0000 Received: from oden.vtab.com (oden.vtab.com [127.0.0.1]) by oden.vtab.com (Postfix) with ESMTP id E75A726EF19; Tue, 21 Oct 2008 09:28:52 +0200 (CEST) Received: from polhem (unknown [62.20.90.206]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by oden.vtab.com (Postfix) with ESMTP id 9BC8126EF07; Tue, 21 Oct 2008 09:28:52 +0200 (CEST) From: "Jakob Engblom" To: "'teawater'" , "'Michael Snyder'" Cc: References: <48FBDA34.6020104@vmware.com> In-Reply-To: Subject: RE: [discuss] semantics, "replay debugging" vs. "reverse debugging" Date: Tue, 21 Oct 2008 07:29:00 -0000 Message-ID: <007e01c9334e$aad56ff0$00804fd0$@com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 12.0 Content-Language: sv 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/msg00079.txt.bz2 > > 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