[RFA] Fix hw watchpoints in process record.
Michael Snyder
msnyder@vmware.com
Mon Nov 9 21:20:00 GMT 2009
Hui Zhu wrote:
> Still not very well, with the old program:
>
> (gdb) start
> Temporary breakpoint 1 at 0x80483c1: file 1.c, line 20.
> Starting program: /home/teawater/gdb/a.out
> warning: the debug information found in "/lib/ld-2.7.so" does not
> match "/lib/ld-linux.so.2" (CRC mismatch).
>
> warning: the debug information found in
> "/lib/tls/i686/cmov/libc-2.7.so" does not match
> "/lib/tls/i686/cmov/libc.so.6" (CRC mismatch).
>
>
> Temporary breakpoint 1, main () at 1.c:20
> 20 int b = 0;
> (gdb) record
> (gdb) n
> During symbol reading, incomplete CFI data; unspecified registers
> (e.g., eax) at 0x80483be.
> 21 int c = 1;
> (gdb)
> 24 printf ("a = %d b = %d c = %d\n", a, b, c);
> (gdb) hw
> Undefined command: "hw". Try "help".
> (gdb) hb
> Hardware assisted breakpoint 2 at 0x80483cf: file 1.c, line 24.
> (gdb) c
> Continuing.
> a = 0 b = 0 c = 1
> a = 3
> a = 3 b = 3 c = 1
> a = 3 b = 3 c = 2
> a = 1 b = 3 c = 2
> The next instruction is syscall exit_group. It will make the program
> exit. Do you want to stop the program?([y] or n)
> Process record: inferior program stopped.
>
> Program received signal SIGTRAP, Trace/breakpoint trap.
> 0xb7fe3405 in __kernel_vsyscall ()
> (gdb) rc
> Continuing.
>
> Breakpoint 2, main () at 1.c:24
> 24 printf ("a = %d b = %d c = %d\n", a, b, c);
> (gdb) rc
> Continuing.
>
> No more reverse-execution history.
> main () at 1.c:20
> 20 int b = 0;
> (gdb) c
> Continuing.
>
> Program received signal SIGTRAP, Trace/breakpoint trap.
> 0x080483d0 in main () at 1.c:24
> 24 printf ("a = %d b = %d c = %d\n", a, b, c);
> (gdb) c
> Continuing.
>
> No more reverse-execution history.
> 0xb7fe3405 in __kernel_vsyscall ()
> (gdb) rc
> Continuing.
>
> No more reverse-execution history.
> main () at 1.c:20
> 20 int b = 0;
> (gdb) c
> Continuing.
>
> No more reverse-execution history.
> 0xb7fe3405 in __kernel_vsyscall ()
> (gdb) rc
> Continuing.
>
> No more reverse-execution history.
> main () at 1.c:20
> 20 int b = 0;
> (gdb) info b
> Num Type Disp Enb Address What
> 2 hw breakpoint keep y 0x080483cf in main at 1.c:24
> breakpoint already hit 1 time
> (gdb) c
> Continuing.
>
> No more reverse-execution history.
> 0xb7fe3405 in __kernel_vsyscall ()
>
>
> Thanks,
> Hui
That's odd, I don't get anything like that.
It basically works correctly for me, except for
an unrelated bug that I'm currently looking into.
I'm using RHEL4 and gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-11)
More information about the Gdb-patches
mailing list