From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23552 invoked by alias); 30 Apr 2010 17:52:16 -0000 Received: (qmail 23538 invoked by uid 22791); 30 Apr 2010 17:52:15 -0000 X-SWARE-Spam-Status: No, hits=-1.2 required=5.0 tests=BAYES_00,SPF_SOFTFAIL X-Spam-Check-By: sourceware.org Received: from mtaout20.012.net.il (HELO mtaout20.012.net.il) (80.179.55.166) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 30 Apr 2010 17:52:08 +0000 Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0L1P00E00AXWYP00@a-mtaout20.012.net.il> for gdb@sourceware.org; Fri, 30 Apr 2010 20:52:04 +0300 (IDT) Received: from HOME-C4E4A596F7 ([77.126.59.39]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L1P00DF1AYQIO40@a-mtaout20.012.net.il>; Fri, 30 Apr 2010 20:52:03 +0300 (IDT) Date: Fri, 30 Apr 2010 17:52:00 -0000 From: Eli Zaretskii Subject: Re: [Discussion/Prec] The record speed up plan (Make speed like without prec) In-reply-to: To: Hui Zhu Cc: gdb@sourceware.org, msnyder@vmware.com Reply-to: Eli Zaretskii Message-id: <83iq78x1yz.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: X-IsSubscribed: yes 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: 2010-04/txt/msg00162.txt.bz2 > From: Hui Zhu > Date: Fri, 30 Apr 2010 21:23:20 +0800 > Cc: Michael Snyder > > But lucky for us that insns exec rules we know. So most of insns > (There a some special, I will talk it later), if we have the a > inferior value(memory and reg), we can get the each value of next > insn. I don't see how you can do that, unless you first read the entire memory of the inferior. Otherwise, when an instruction references some address, how do you know what value is stored at that address? Also, what do you do with features such as shared memory, where the value at a given address can change beyond control of the current inferior, and change the result of some instruction which references that address? > So if we can record the all the value of a inferior A(or all the value > that will be change, but to get it will need parse the insns that will > be exec, this is not easy.) , we can let the inferior exec without > step. If the user want reverse exec, get the each step value from A. > Then the record speed will very faster than before. But this preprocessing phase, won't it be prohibitively slow? > 1. How to record all the status of a inferior? For the linux, > checkpoint already use fork to record the inferior. So prec will use > it too. > And when we want get the old status of inferior step by step, we can > let the forked process step by step. If you need single-step the forked inferior, you will still need to wait for the slow single-step execution, and the advantage of letting the inferior run freely is lost, right?