From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29244 invoked by alias); 26 Nov 2007 19:24:51 -0000 Received: (qmail 29234 invoked by uid 22791); 26 Nov 2007 19:24:49 -0000 X-Spam-Check-By: sourceware.org Received: from bluesmobile.specifix.com (HELO bluesmobile.specifix.com) (216.129.118.140) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 26 Nov 2007 19:24:45 +0000 Received: from [127.0.0.1] (bluesmobile.specifix.com [216.129.118.140]) by bluesmobile.specifix.com (Postfix) with ESMTP id 9DA663BDF0; Mon, 26 Nov 2007 11:03:05 -0800 (PST) Subject: Re: GDB record patch 0.1.1 for GDB-6.6 release (It make I386 and MIPS GDB support Reversible Debugging) From: Michael Snyder To: Tea Cc: gdb-patches@sourceware.org In-Reply-To: References: Content-Type: text/plain Date: Mon, 26 Nov 2007 19:24:00 -0000 Message-Id: <1196104345.2501.53.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.10.3 (2.10.3-4.fc7) Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2007-11/txt/msg00493.txt.bz2 Teawater, I just want to acknowledge your contribution. I've noticed your postings, just have not had time to sit down and pore over them. I am very interested in what you are doing, and I hope that I or another maintainer can take the time to look it over soon -- hard to make promises, since it is rather different from anything that most of us are actively engaged on. Cheers, Michael On Thu, 2007-11-22 at 17:13 +0800, Tea wrote: > Hi everybody, > > GDB record patch disassemble the instruction that will be executed to > get which memory and register will be changed and record them to > record all the program running message. > The main change of this version record patch is support the I386 > instructions(System call, floating-point instructions and SSE > instructions are still not support). > The work of next stage is make GDB record patch support I386-Linux system call. > Please give me your thought about the "record" and help me test it. > Thanks a lot. > BTW, I am sorry I compress the patch because it is too big to send to > the maillist. > > To make and install the GDB record patch 0.1.1 with GDB-6.6: > tar vxjf gdb-6.6.tar.bz2 > bunzip2 gdb-6.6-record-0.1.1.patch.bz2 > patch -p0 < gdb-6.6-record-0.1.1.patch > mkdir bgdb > cd bgdb > ../gdb-6.6/configure > make > make install > > The following is how to use the record: > cat 1.c > int a = 0; > int > cool () > { > a += 3; > > return (a); > } > int > main() > { > int b = 0; > int c = 1; > > b = cool (); > > c += 1; > a -= 2; > > return (0); > } > gcc -g 1.c > gdb a.out > GNU gdb 6.6 > Record 0.1.1 > Copyright (C) 2006 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you are > welcome to change it and/or distribute copies of it under certain conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for details. > This GDB was configured as "i686-pc-linux-gnu"... > Using host libthread_db library "/lib/tls/libthread_db.so.1". > Setting up the environment for debugging gdb. > Function "internal_error" not defined. > Make breakpoint pending on future shared library load? (y or [n]) > [answered N; input not from terminal] > Function "info_command" not defined. > Make breakpoint pending on future shared library load? (y or [n]) > [answered N; input not from terminal] > /home/xxx/rec/bgdb/gdb/.gdbinit:8: Error in sourced command file: > No breakpoint number 0. > (gdb) b main > Breakpoint 1 at 0x8048331: file 1.c, line 12. > (gdb) r > Starting program: /home/xxx/rec/bgdb/gdb/a.out > > Breakpoint 1, main () at 1.c:12 > 12 int b = 0; > (gdb) p a > $1 = 0 > (gdb) p b > During symbol reading, incomplete CFI data; unspecified registers > (e.g., eax) at 0x8048324. > $2 = 134513500 > (gdb) p c > $3 = 7610400 > (gdb) rec > record: record and reverse function is started. > (gdb) n > 13 int c = 1; > (gdb) > 15 b = cool (); > (gdb) > 17 c += 1; > (gdb) p a > $4 = 3 > (gdb) p b > $5 = 3 > (gdb) p c > $6 = 1 > (gdb) n > 18 a -= 2; > (gdb) > 20 return (0); > (gdb) p a > $7 = 1 > (gdb) p b > $8 = 3 > (gdb) p c > $9 = 2 > (gdb) rev > record: GDB is set to reverse debug mode. > (gdb) s > 18 a -= 2; > (gdb) > 0x0804834a 17 c += 1; > (gdb) p a > $10 = 3 > (gdb) p b > $11 = 3 > (gdb) p c > $12 = 1 > (gdb) s > 0x08048344 15 b = cool (); > (gdb) s > cool () at 1.c:5 > 5 a += 3; > (gdb) p a > $13 = 0 > (gdb) s > 0x08048311 4 { > (gdb) > main () at 1.c:15 > 15 b = cool (); > (gdb) > 13 int c = 1; > (gdb) p a > $14 = 0 > (gdb) p b > $15 = 0 > (gdb) p c > $16 = 7610400 > (gdb) rev > record: GDB is set to normal debug mode. > (gdb) n > 15 b = cool (); > (gdb) > 17 c += 1; > (gdb) n > 18 a -= 2; > (gdb) p a > $4 = 3 > (gdb) p b > $5 = 3 > (gdb) p c > $6 = 2 > (gdb) quit > The program is running. Exit anyway? (y or n) y > record: record and reverse function is stopped. > You can find out the change of the values of "a", "b" and "c" when the > GDB normal debug and reverse debug. > > Thanks, > teawater > > > Signed-Off-By: Teawater Zhu