From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3049 invoked by alias); 15 Sep 2005 05:36:47 -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 3035 invoked by uid 22791); 15 Sep 2005 05:36:38 -0000 Received: from mail-out4.apple.com (HELO mail-out4.apple.com) (17.254.13.23) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Thu, 15 Sep 2005 05:36:38 +0000 Received: from relay6.apple.com (a17-128-113-36.apple.com [17.128.113.36]) by mail-out4.apple.com (8.12.11/8.12.11) with ESMTP id j8F5aXDV001288; Wed, 14 Sep 2005 22:36:33 -0700 (PDT) Received: from [17.219.206.81] (unknown [17.219.206.81]) by relay6.apple.com (Apple SCV relay) with ESMTP id 41E7C525; Wed, 14 Sep 2005 22:36:33 -0700 (PDT) Message-ID: <43290862.9040204@apple.com> Date: Thu, 15 Sep 2005 05:36:00 -0000 From: Stan Shebs User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.3) Gecko/20040910 MIME-Version: 1.0 To: Eli Zaretskii Cc: gdb@sources.redhat.com Subject: Re: Using reverse execution References: <432628AA.2040808@apple.com> <43277083.1040708@apple.com> <4328A574.5080906@apple.com> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2005-09/txt/msg00102.txt.bz2 Eli Zaretskii wrote: >>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. > > Cool! Care to share any details?? >>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. > But don't you think it's telling that not one single person was willing to go to the trouble of implementing it on more platforms? When breakpoints don't work on a platform, users don't say "oh well, we'll just have to do without". Apparently tracepoints are just not a must-have. >>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. > Depending on the answers, the project could be fatally flawed. For instance, if the ability to undo system calls is critical for usability, that pretty much relegates reversal to simulator targets only - not interesting for my user base. That's why I wanted to talk about usage patterns; if users don't need the debugger to do the incredibly hard things, then we can get to something useful sooner. Stan