From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2817 invoked by alias); 9 Jun 2011 16:39:27 -0000 Received: (qmail 2808 invoked by uid 22791); 9 Jun 2011 16:39:26 -0000 X-SWARE-Spam-Status: No, hits=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST X-Spam-Check-By: sourceware.org Received: from mail-px0-f182.google.com (HELO mail-px0-f182.google.com) (209.85.212.182) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 09 Jun 2011 16:39:12 +0000 Received: by pxi20 with SMTP id 20so1110773pxi.13 for ; Thu, 09 Jun 2011 09:39:12 -0700 (PDT) Received: by 10.142.1.4 with SMTP id 4mr175063wfa.210.1307637551944; Thu, 09 Jun 2011 09:39:11 -0700 (PDT) Received: from [192.168.1.100] ([210.73.4.168]) by mx.google.com with ESMTPS id o16sm1882443wff.1.2011.06.09.09.39.09 (version=SSLv3 cipher=OTHER); Thu, 09 Jun 2011 09:39:10 -0700 (PDT) Message-ID: <4DF0F72D.2020001@gmail.com> Date: Thu, 09 Jun 2011 16:39:00 -0000 From: Nan Wang User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110312 Lightning/1.0b3pre Thunderbird/3.1.9 MIME-Version: 1.0 To: Pedro Alves , gdb@sourceware.org Subject: Re: ReBranch - a record-replay debugging tool Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: 7bit 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/msg00057.txt.bz2 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) >