From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26535 invoked by alias); 13 Jan 2010 09:29:18 -0000 Received: (qmail 26259 invoked by uid 22791); 13 Jan 2010 09:29:15 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-px0-f175.google.com (HELO mail-px0-f175.google.com) (209.85.216.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 13 Jan 2010 09:29:09 +0000 Received: by pxi5 with SMTP id 5so17431160pxi.12 for ; Wed, 13 Jan 2010 01:29:08 -0800 (PST) MIME-Version: 1.0 Received: by 10.142.67.24 with SMTP id p24mr9330879wfa.252.1263374948090; Wed, 13 Jan 2010 01:29:08 -0800 (PST) In-Reply-To: References: <4B4B7231.6010001@vmware.com> <20100111205421.GA31228@host0.dyn.jankratochvil.net> From: Hui Zhu Date: Wed, 13 Jan 2010 09:29:00 -0000 Message-ID: Subject: Re: Reverse Debugging Headaches To: Sean Soria Cc: Jan Kratochvil , Michael Snyder , "gdb@sourceware.org" Content-Type: text/plain; charset=ISO-8859-1 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-01/txt/msg00125.txt.bz2 Hello, The prec in cvs-head still doesn't support multi-thread inferior. We just have a series of patches to make prec support multi-thread inferior. You can get the link for it in http://sourceware.org/gdb/wiki/ProcessRecord BTW it didn't update follow gdb-cvs-head. Mail me if you need it, I will update it. Thanks, Hui On Tue, Jan 12, 2010 at 04:57, Sean Soria wrote: > Are there instructions or advice to accompany this? > > On Mon, Jan 11, 2010 at 12:54 PM, Jan Kratochvil > wrote: >> On Mon, 11 Jan 2010 19:47:13 +0100, Michael Snyder wrote: >>> Sean Soria wrote: >>> >Whenever I try to reverse debug I break into the program, set target >>> >record and then continue. I immediately hit some sort of simd >>> >instruction (in things like strlen in libc) or unsupported ioctl call. >>> > Is there any way around these issues? >>> >>> Shouldn't happen. =A0What version gdb? =A0What linux? >> >> gdb 7.0.50.20100111-cvs Fedora 12: >> >> kernel-2.6.32.1-9.fc13.x86_64 -> x86_64 gdb -> x86_64 inferior: >> (gdb) start >> Temporary breakpoint 1 at 0x400640: file threadit.c, line 40. >> Starting program: /home/jkratoch/t/threadit >> [Thread debugging using libthread_db enabled] >> Temporary breakpoint 1, main () at threadit.c:40 >> 40 =A0 =A0 =A0 =A0i =3D pthread_create (&thread1, NULL, start, NULL); = =A0 =A0 /* create1 */ >> (gdb) record >> (gdb) c >> Continuing. >> warning: Process record ignores the memory change of instruction at addr= ess 0x362de0db46 because it can't get the value of the segment register. >> [...] >> warning: Process record ignores the memory change of instruction at addr= ess 0x362e274d46 because it can't get the value of the segment register. >> Process record doesn't support instruction 0xf6e at address 0x362e281a32. >> Process record: failed to record execution log. >> [Thread 0x7ffff7fe3700 (LWP 26985)] #1 stopped. >> memset () at ../sysdeps/x86_64/memset.S:746 >> 746 =A0 =A0 =A0 =A0 =A0 =A0 =A0movd =A0 %rdx,%xmm0 >> (gdb) >> >> kernel-2.6.32.1-9.fc13.x86_64 -> x86_64 gdb -> i386 inferior: >> (gdb) start >> Temporary breakpoint 1 at 0x80484f4: file /home/jkratoch/t/threadit.c, l= ine 40. >> Starting program: /home/jkratoch/t/threadit32 >> warning: .dynamic section for "/lib/libc.so.6" is not at the expected ad= dress >> warning: difference appears to be caused by prelink, adjusting expectati= ons >> [Thread debugging using libthread_db enabled] >> Temporary breakpoint 1, main () at /home/jkratoch/t/threadit.c:40 >> 40 =A0 =A0 =A0 =A0i =3D pthread_create (&thread1, NULL, start, NULL); = =A0 =A0 /* create1 */ >> (gdb) record >> (gdb) c >> Continuing. >> warning: Process record ignores the memory change of instruction at addr= ess 0x18a7c5 because it can't get the value of the segment register. >> Cannot find user-level thread for LWP 11809: generic error >> (/lib/libpthread-2.11.so has been prelinked to avoid some existing bug) >> >> kernel-2.6.32.1-9.fc13.x86_64 -> i386 gdb -> i386 inferior: >> (gdb) start >> Temporary breakpoint 1 at 0x80484f4: file /home/jkratoch/t/threadit.c, l= ine 40. >> Starting program: /home/jkratoch/t/threadit32 >> [Thread debugging using libthread_db enabled] >> Temporary breakpoint 1, main () at /home/jkratoch/t/threadit.c:40 >> 40 =A0 =A0 =A0 =A0i =3D pthread_create (&thread1, NULL, start, NULL); = =A0 =A0 /* create1 */ >> (gdb) record >> (gdb) c >> Continuing. >> warning: Process record ignores the memory change of instruction at addr= ess 0x3557c5 because it can't get the value of the segment register. >> Program terminated with signal SIGTRAP, Trace/breakpoint trap. >> The program no longer exists. >> (gdb) >> >> >> >> #include >> #include >> #include >> >> static volatile int var; >> >> static void *start (void *arg) >> { >> =A0sleep (1); >> =A0return arg; >> } >> >> int main (void) >> { >> =A0pthread_t thread1; >> =A0int i; >> >> =A0i =3D pthread_create (&thread1, NULL, start, NULL); >> =A0assert (i =3D=3D 0); >> =A0i =3D pthread_join (thread1, NULL); >> =A0assert (i =3D=3D 0); >> >> =A0return 0; >> } >> >> >