From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17638 invoked by alias); 9 Jun 2011 19:20:26 -0000 Received: (qmail 17629 invoked by uid 22791); 9 Jun 2011 19:20:25 -0000 X-SWARE-Spam-Status: No, hits=0.3 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RFC_ABUSE_POST,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from nm28-vm2.bullet.mail.ne1.yahoo.com (HELO nm28-vm2.bullet.mail.ne1.yahoo.com) (98.138.91.128) by sourceware.org (qpsmtpd/0.43rc1) with SMTP; Thu, 09 Jun 2011 19:20:11 +0000 Received: from [98.138.90.53] by nm28.bullet.mail.ne1.yahoo.com with NNFMP; 09 Jun 2011 19:20:10 -0000 Received: from [98.138.89.196] by tm6.bullet.mail.ne1.yahoo.com with NNFMP; 09 Jun 2011 19:20:10 -0000 Received: from [127.0.0.1] by omp1054.mail.ne1.yahoo.com with NNFMP; 09 Jun 2011 19:20:10 -0000 Received: (qmail 45656 invoked by uid 60001); 9 Jun 2011 19:20:10 -0000 Message-ID: <158712.44942.qm@web112515.mail.gq1.yahoo.com> Received: from [15.219.201.68] by web112515.mail.gq1.yahoo.com via HTTP; Thu, 09 Jun 2011 12:20:10 PDT References: <4DF0F72D.2020001@gmail.com> Date: Thu, 09 Jun 2011 19:20:00 -0000 From: paawan oza Subject: Re: ReBranch - a record-replay debugging tool To: Nan Wang , Pedro Alves , gdb@sourceware.org In-Reply-To: <4DF0F72D.2020001@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii 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: 2011-06/txt/msg00058.txt.bz2 Hi, Is it something like you do an instrumentation in object code....mostly at all control flows and system calls. and record some things. so indirectly you do not record every instruction, but you need to modify object code by binary instrumentation. but what I fail to understand is; what all do you record ? Regards, Oza. ----- Original Message ---- From: Nan Wang To: Pedro Alves ; gdb@sourceware.org Sent: Thu, June 9, 2011 10:09:09 PM Subject: Re: ReBranch - a record-replay debugging tool What I mean "control-flow only debugging" is: Sometimes user only use GDB's control-flow functions, such as 'c', 'b', 'n', 's' ... to watch how the program get to the bug. He or she doesn't care the variable name, the memory and some data-flow information. ReBranch demands "control-flow only debugging" because it only records every branch instruction. In current implementation (the modified version of gdbserver), the replayer still need to create a process and use ptrace to control it. When data-flow have error (caused by data-race in multi threading situation), the ptraced process will generate segfault for every instructions, which slows down the performance. ReBranch have a GUI replayer -- ReBranchK -- which is a simple control-flow-only debugging tool. ReBranchK doesn't really create the process and debug it. It 'executes' the program virtually by reads the log and shows corresponding source code. It implements 's', 'b' and 'c' command. However, when writing ReBranchK, I found that, without stack information, many useful control-flow command such as 'n' and 'bt' are hard to be implemented. Therefore, I hope someone help me to put this "control-flow only debugging" function into gdbserver. > Can you clarify what do you mean by "control-flow only debugging"? > > (Note: I haven't had the time yet to read your document on ReBranch, > so I don't really know how it works or why would you need gdbserver > for replay) >