From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4942 invoked by alias); 27 Aug 2009 08:26:58 -0000 Received: (qmail 4933 invoked by uid 22791); 27 Aug 2009 08:26:57 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=BAYES_00 X-Spam-Check-By: sourceware.org Received: from oden.vtab.com (HELO oden.vtab.com) (62.20.90.195) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 27 Aug 2009 08:26:53 +0000 Received: from oden.vtab.com (oden.vtab.com [127.0.0.1]) by oden.vtab.com (Postfix) with ESMTP id 48C1326F314 for ; Thu, 27 Aug 2009 10:26:51 +0200 (CEST) Received: from polhem (79.138.197.134.bredband.tre.se [79.138.197.134]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by oden.vtab.com (Postfix) with ESMTP id 28AD326EF3B for ; Thu, 27 Aug 2009 10:26:48 +0200 (CEST) From: "Jakob Engblom" To: References: <00cf01ca265a$d4110dc0$7c332940$@com> <83tyzucw8p.fsf@gnu.org> In-Reply-To: <83tyzucw8p.fsf@gnu.org> Subject: RE: GDB MI Reverse Commands added [2 of 3] Date: Thu, 27 Aug 2009 13:48:00 -0000 Message-ID: <020101ca26f0$202d0bb0$60872310$@com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-08/txt/msg00482.txt.bz2 > > =A0 Resumes the execution of the inferior program until a breakpoint is > > ! encountered, or until the inferior exits. If the @samp{--reverse} > ^^ > Two spaces between sentences, please (here and elsewhere). Will do. > > ! option is specified, resumes the reverse execution of the inferior > > ! program until a breakpoint is encountered, or until the inferior > > ! exits. >=20 > How can you exit in reverse? I think you can only get to the > beginning of `main', no? It really depends on how your backend works... there is no necessary relationship between some function called "main" and where revexec starts. First of all, in a full-system reverse debug case, it is quite reasonable to "exit backwards" and get to the point BEFORE the program started. Just like= you can get to AFTER exit if you let the program run its course.=20 It gets even funkier if you let the backend be OS aware. In this case, the target program is only being debugged when actually execution on some targetsystem processor. At other times, there is no execution activity, as = the program is not running. Here also, you can easily see how a mistaken rever= se just goes back to before the program even existed, essentially a limbo anal= ogous to after exit.=20 There is also normally a point in time where reverse starts being available. That could be when the user turns it on DURING the execution of program, or= the first instruction of a booting machine, or some other event horizon before = which we have no information. On a hardware trace box, it just the start of the sliding window of visibility.=20=20 So I think this makes sense, no? Best regards, /jakob _______________________________________________________ Jakob Engblom, PhD, Technical Marketing Manager Virtutech=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Direct: +46= 8 690 07 47=A0=A0=A0 Drottningholmsv=E4gen 22=A0=A0=A0=A0=A0 Mobile: +46 709 242 646=A0=A0 11243 Stockholm=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Web:=A0=A0=A0 www.virtu= tech.com=A0 Sweden ________________________________________________________ =A0=20