This is the mail archive of the
mailing list for the GDB project.
Process Record and Remote debugging
- From: "Marc Khouzam" <marc dot khouzam at ericsson dot com>
- To: <gdb at sourceware dot org>
- Date: Thu, 29 Jan 2009 15:51:51 -0500
- Subject: Process Record and Remote debugging
As Process Record and Replay is in the process of being submitted and I
really like to see it accepted, I thought it would be useful to report
the small problems I found, while using it.
I was pleasantly surprised to find out I was able to do reverse
when attaching to an already running process. This is great!
I then tried remote reverse debugging using gdbserver. It performed
than I expected, but I saw two problems.
1- After you run the 'target' command and are connected to gdbserver,
the program is considered running; so instead of run, one must use
continue; that seems to allow for the 'record' command to be used right
after the 'target' command. However, when I do that and then try to
'continue' Process Record gives an error and the program cannot run.
The workaround is to set a breakpoint on main(), 'continue' and -then-
turn on 'record'. The error I get is shown in the small session at the
end of the mail.
2- For some reason, when doing remote debugging with record on, when
I step over a printf GDB takes many seconds to come back. And when I
tried to step over a malloc, I didn't have the patience to wait for
GDB to come back, it was so long. Without 'record' it of course works.
Considering I didn't think Process Record worked with attach or remote
debugging, I was very impressed with these finding.
GNU gdb (GDB) 126.96.36.19990113-cvs
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu".
For bug reporting instructions, please see:
(gdb) target remote localhost:10008
Remote debugging using localhost:10008
0xb7f9d840 in _start () from /lib/ld-linux.so.2
(gdb) b main
Breakpoint 1 at 0x8048a7f: file ../testapp.cc, line 195.
Process record doesn't support instruction rdtsc.
Process record doesn't support instruction 0xf31 at address 0xb7f9dfa7.
0xb7f9dfa7 in _dl_start () from /lib/ld-linux.so.2
Process record: failed to record execution log.