From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31096 invoked by alias); 13 May 2005 06:23:40 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 31082 invoked from network); 13 May 2005 06:23:35 -0000 Received: from unknown (HELO legolas.inter.net.il) (192.114.186.24) by sourceware.org with SMTP; 13 May 2005 06:23:35 -0000 Received: from zaretski (IGLD-83-130-254-105.inter.net.il [83.130.254.105]) by legolas.inter.net.il (MOS 3.5.6-GR) with ESMTP id EJC18358 (AUTH halo1); Fri, 13 May 2005 09:23:07 +0300 (IDT) Date: Fri, 13 May 2005 06:23:00 -0000 From: "Eli Zaretskii" To: "Michael Snyder" Message-ID: <01c55783$Blat.v2.4$d6ab25c0@zahav.net.il> Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=ISO-8859-1 CC: gdb@sources.redhat.com In-reply-to: <00c601c55747$860a3e80$aaa56b80@msnyder8600> Subject: Re: [discuss] Support for reverse-execution Reply-to: Eli Zaretskii References: <00c601c55747$860a3e80$aaa56b80@msnyder8600> X-SW-Source: 2005-05/txt/msg00148.txt.bz2 > From: "Michael Snyder" > Date: Thu, 12 May 2005 16:08:34 -0700 > > I'd like to start adding some commands to gdb to support targets > that can perform reverse execution (eg. stepping backwards). > This concept has been around for a number of years now, and I > have access to a target (the Simics simulator from Virtutech) > that does it quite handily. Sounds like a great idea. > I propose we add something like the following commands > (names open to discussion): > > reverse-continue -- start executing backwards until something > interesting happens (most likely hitting a breakpoint). > > reverse-stepi -- "un-execute" the previous instruction. > > reverse-step -- "un-execute" the previous source line. > > reverse-finish or "un-call" -- proceed backward until > the current function is about to be called by its caller. > > reverse-until... etc. Not "reverse", "backwards" or "back". "Reverse" will become ambiguous once we have two possible directions. > Along with these commands, we would need at least two new > remote-protocol messages: "rc" for reverse-continue, and "rs" > for reverse-stepi. I think all of the above user commands could > be implemented on these primatives. Obviously if the remote > target doesn't understand these primatives, the user command > would error. > > Finally, we'd need a new entry for the target vector -- > something like "to_resume_backwards". If the target vector > doesn't export this method, the user command would error. Please don't forget the manual changes for these features.