From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7210 invoked by alias); 15 Sep 2005 03:37: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 7192 invoked by uid 22791); 15 Sep 2005 03:37:37 -0000 Received: from romy.inter.net.il (HELO romy.inter.net.il) (192.114.186.66) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Thu, 15 Sep 2005 03:37:37 +0000 Received: from HOME-C4E4A596F7 (IGLD-80-230-152-43.inter.net.il [80.230.152.43]) by romy.inter.net.il (MOS 3.5.8-GR) with ESMTP id CJW42968 (AUTH halo1); Thu, 15 Sep 2005 06:37:33 +0300 (IDT) Date: Thu, 15 Sep 2005 03:37:00 -0000 Message-Id: From: Eli Zaretskii To: Stan Shebs CC: gdb@sources.redhat.com In-reply-to: <4328A574.5080906@apple.com> (message from Stan Shebs on Wed, 14 Sep 2005 15:34:28 -0700) Subject: Re: Using reverse execution Reply-to: Eli Zaretskii References: <432628AA.2040808@apple.com> <43277083.1040708@apple.com> <4328A574.5080906@apple.com> X-SW-Source: 2005-09/txt/msg00100.txt.bz2 > Date: Wed, 14 Sep 2005 15:34:28 -0700 > From: Stan Shebs > Cc: gdb@sources.redhat.com > > But have you actually done any debugging by reverse execution yourself? Yes. > As a comparison, for tracepoints we came up with various scenarios for > how they would be amazingly useful and powerful, and yet after nearly > a decade they remain a curiosity in GDB. IMHO, tracepoints remain a curiosity because they were never implemented on a large enough number of platforms. Lack of native support, in particular, is the main reason for its non-use. > So that's the kind of question I'm asking for reverse execution - what > do we think it takes to make it useful? Do we have to be be able to > undo all system calls, or is it sufficient to just skip over them > somehow? Should executing forward after reversal re-execute system > calls, or skip over them, or should there be a sort of virtual/real > option? Do we have to be able to unroll back to the beginning of the > program, or can we usefully limit the range? Is there any more risk > to users than they incur now when calling a function in the inferior? > Reversing is likely to be slower - how much is acceptable? Will an > incomplete mechanism still be interesting, or would it get a bad > reputation such that no one will use it? We could discuss these questions one by one. But we shouldn't fear them to the degree that prevents us from starting to implement this feature.