From: Jan Kratochvil <jan.kratochvil@redhat.com>
To: Michael Snyder <msnyder@vmware.com>
Cc: Sean Soria <sean.soria@gmail.com>,
"gdb@sourceware.org" <gdb@sourceware.org>
Subject: Re: Reverse Debugging Headaches
Date: Mon, 11 Jan 2010 20:54:00 -0000 [thread overview]
Message-ID: <20100111205421.GA31228@host0.dyn.jankratochvil.net> (raw)
In-Reply-To: <4B4B7231.6010001@vmware.com>
[-- Attachment #1: Type: text/plain, Size: 2845 bytes --]
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. What version gdb? What 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 i = pthread_create (&thread1, NULL, start, NULL); /* create1 */
(gdb) record
(gdb) c
Continuing.
warning: Process record ignores the memory change of instruction at address 0x362de0db46 because it can't get the value of the segment register.
[...]
warning: Process record ignores the memory change of instruction at address 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 movd %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, line 40.
Starting program: /home/jkratoch/t/threadit32
warning: .dynamic section for "/lib/libc.so.6" is not at the expected address
warning: difference appears to be caused by prelink, adjusting expectations
[Thread debugging using libthread_db enabled]
Temporary breakpoint 1, main () at /home/jkratoch/t/threadit.c:40
40 i = pthread_create (&thread1, NULL, start, NULL); /* create1 */
(gdb) record
(gdb) c
Continuing.
warning: Process record ignores the memory change of instruction at address 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, line 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 i = pthread_create (&thread1, NULL, start, NULL); /* create1 */
(gdb) record
(gdb) c
Continuing.
warning: Process record ignores the memory change of instruction at address 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)
[-- Attachment #2: threadit.c --]
[-- Type: text/plain, Size: 341 bytes --]
#include <pthread.h>
#include <assert.h>
#include <unistd.h>
static volatile int var;
static void *start (void *arg)
{
sleep (1);
return arg;
}
int main (void)
{
pthread_t thread1;
int i;
i = pthread_create (&thread1, NULL, start, NULL);
assert (i == 0);
i = pthread_join (thread1, NULL);
assert (i == 0);
return 0;
}
next prev parent reply other threads:[~2010-01-11 20:54 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-10 6:03 Sean Soria
2010-01-10 7:38 ` Hui Zhu
2010-01-11 18:54 ` Michael Snyder
2010-01-11 20:44 ` Sean Soria
2010-01-11 20:54 ` Jan Kratochvil [this message]
2010-01-11 20:57 ` Sean Soria
2010-01-13 9:29 ` Hui Zhu
2010-01-13 11:12 ` Jan Kratochvil
2010-01-14 5:03 ` Hui Zhu
2010-01-14 19:00 ` Michael Snyder
2010-01-15 1:43 ` Hui Zhu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100111205421.GA31228@host0.dyn.jankratochvil.net \
--to=jan.kratochvil@redhat.com \
--cc=gdb@sourceware.org \
--cc=msnyder@vmware.com \
--cc=sean.soria@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox