From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1063 invoked by alias); 7 Sep 2009 12:06:17 -0000 Received: (qmail 1050 invoked by uid 22791); 7 Sep 2009 12:06:16 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from smarthost01.mail.zen.net.uk (HELO smarthost01.mail.zen.net.uk) (212.23.3.140) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 07 Sep 2009 12:06:06 +0000 Received: from [82.69.137.158] (helo=[10.17.20.102]) by smarthost01.mail.zen.net.uk with esmtp (Exim 4.63) (envelope-from ) id 1Mkcyu-0000jt-Ms; Mon, 07 Sep 2009 12:06:00 +0000 Message-ID: <4AA4F724.1050708@undo-software.com> Date: Mon, 07 Sep 2009 12:06:00 -0000 From: Greg Law User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.1.1) Gecko/20090715 Thunderbird/3.0b3 MIME-Version: 1.0 To: Jakob Engblom CC: 'Michael Snyder' , gdb@sourceware.org, 'Julian Smith' Subject: Re: Simics & reverse execution References: <002001ca1f0e$4c9b74a0$e5d25de0$@com> <002101ca1f2e$746e1ad0$5d4a5070$@com> <200908171251.07179.pedro@codesourcery.com> <4A899E2E.6080203@vmware.com> <00b801ca1f74$e5610a90$b0231fb0$@com> <4A89B7E4.9010804@vmware.com> <027701ca209f$64c71ce0$2e5556a0$@com> <4A95E319.6020300@vmware.com> <4A97B9C9.8070501@greglaw.net> <010b01ca2a3c$7766ca70$66345f50$@com> <4A9BF84F.3070404@undo-software.com> <025201ca2ace$a9256430$fb702c90$@com> <4A9D2650.6080209@undo-software.com> <019501ca2ccb$0bc1bd70$23453850$@com> <4AA10B93.4000905@undo-software.com> <005201ca2f8b$23c4cc60$6b4e6520$@com> <4AA4C0A4.7000509@undo-software.com> <009b01ca2f94$9d6508b0$d82f1a10$@com> In-Reply-To: <009b01ca2f94$9d6508b0$d82f1a10$@com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Originating-Smarthost01-IP: [82.69.137.158] 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: 2009-09/txt/msg00115.txt.bz2 On 09/07/2009 09:24 AM, Jakob Engblom wrote: >>> going to be painful. Time really becomes very pervasive once >>> you start using it in one place... >> >> Intriguing. In what ways? >> >> We currently have a somewhat baroque bunch of python that wraps up >> gdb to enable our reverse debugging commands on users system where >> they've an older version of gdb installed. This includes some >> commands to display the current time and jump to an arbitrary time >> (where time is a scalar 64-bit integer). The rest of gdb remains >> blissfully unaware (obviously, since it's unpatched). >> >> I can see how in general "teaching" the concept of time to gdb >> would be a huge job. But I don't think a command to jump around >> arbitrarily and another to display the "current" time needs to >> teach anything about time to the rest of gdb. > > Think about the cross-product with thread handling. If you use time > there, you need to determine how to handle times for threads. One > timeline per thread? Or a global system time? Oh right, yes, I was assuming global. If time were per thread, then yes, I can see how that would quickly get very complicated. > > You also really like to have time breakpoints in the system, to > allow you to do things like "run this system for 6.132 seconds and > then stop" (typical operation we do when skipping a boot sequence or > we have run a workload several times and know when itneresting > things should start to happen). I would argue that's a future feature. Time-based breakpoints would seem a very nice thing to have, but a system which had get/set time commands but no time breakpoints would be a lot more more useful than one with neither. > > Also, how should this interact with non-stop debug? And how should > you handle multiple active processor cores running parallel threads? I must confess, I haven't given much thought at all to the interaction of non-stop debug with reverse debugging in general. I haven't been following too closely, but aren't they currently incompatible anyway? (something to do with displaced breakpoints not working well with reverse). But I don't see how it's any worse than the bookmarks case. In fact, I don't see how any of it differs from use with bookmarks. All we're really talking about is a different way to describe a point in history. Again, you could go a lot further than I'm proposing right now. But that's not to say you need to for this stuff be useful. Greg -- Greg Law, Undo Software http://undo-software.com/