From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18089 invoked by alias); 5 May 2010 04:04:52 -0000 Received: (qmail 17852 invoked by uid 22791); 5 May 2010 04:04:49 -0000 X-SWARE-Spam-Status: No, hits=2.2 required=5.0 tests=BAYES_50,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from n4-vm0.bullet.mail.gq1.yahoo.com (HELO n4-vm0.bullet.mail.gq1.yahoo.com) (67.195.9.7) by sourceware.org (qpsmtpd/0.43rc1) with SMTP; Wed, 05 May 2010 04:04:43 +0000 Received: from [98.137.27.132] by n4.bullet.mail.gq1.yahoo.com with NNFMP; 05 May 2010 04:04:41 -0000 Received: from [98.137.27.212] by t4.bullet.mail.gq1.yahoo.com with NNFMP; 05 May 2010 04:04:41 -0000 Received: from [127.0.0.1] by omp122.mail.gq1.yahoo.com with NNFMP; 05 May 2010 04:04:41 -0000 Received: (qmail 25651 invoked by uid 60001); 5 May 2010 04:04:41 -0000 Message-ID: <557165.23885.qm@web112507.mail.gq1.yahoo.com> Received: from [72.163.183.118] by web112507.mail.gq1.yahoo.com via HTTP; Tue, 04 May 2010 21:04:41 PDT References: Date: Wed, 05 May 2010 04:04:00 -0000 From: paawan oza Subject: Re: [Discussion/Prec] The record speed up plan (Make speed like without prec) To: Hui Zhu , gdb@sourceware.org Cc: Michael Snyder In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable 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-05/txt/msg00026.txt.bz2 Hi, I have some understanding about followingwhat you wrote in previous mail. "But this way have a 2 question. 1. How to record all the status of a inferior=EF=BC=9F For the linux, checkpoint already use fork to record the=20 inferior. So prec will use it too. And when we want get the old=20 status of inferior step by step, we can let the forked process step=20 by step. That will easy by parse the insn and know what will happen." I have some queries. 1) when the process is attached to gdb, and user starts debugging, at what = moment we do fork?=20 2) so you mean to say, forked process will freely run, and still we continu= e to record parent step by step ? in above case if we want to play reverse, we still need to depend on the sp= eed of recording/steeping of parent. Regards, Oza. ----- Original Message ---- From: Hui Zhu To: gdb@sourceware.org Cc: Michael Snyder Sent: Fri, April 30, 2010 6:53:20 PM Subject: [Discussion/Prec] The record speed up plan (Make speed like withou= t prec) Hello, I think the record speed is the biggest trouble of prec. After I did a long think and a lot of test around with it. I got a idea. Actually, I have began the code work. I found that the big trouble is prec let the inferior just step. It make inferior speed very low. Because the setp need a lot of context works. So I think let inferior continue can make it speed up. But How to record the change of each step? Some physicists said all the things in the world have execution rules. So use the current stat of this thing, we will get what will happen in the future. Looks most of rules are still not found. :) 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. 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 way have a 2 question. 1. How to record all the status of a inferior=EF=BC=9F 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. That will easy by parse the insn and know what will happen. 2. How to handle special insns that we will not know what will happen after it exec? The first type of this insns is system call. Linux have catchpoint that make inferior stop before and after syscall. Then we can record the change after the system call. The other insn is like rdtsc, I don't know howto get the feature value of this type. My current idea with them is give up all the record after this insn. If user need, insert special breakpoint for it. Next time, inferior will stop on this insn, then prec can record the value after it exec. BTW, I call this new function pre_record, I agree with you if you said this name is ugly. :) Please tell me your opinions about my idea. That will help me a lot. Than= ks. Thanks, Hui