Hi Michael,
I do some test with this patch. But sometime hb didn't work in replay mode.
For example:
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) hb
Hardware assisted breakpoint 2 at 0x80483c8: file 1.c, line 21.
(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:21
21 int c = 1;
(gdb) info b
Num Type Disp Enb Address What
2 hw breakpoint keep y 0x080483c8 in main at 1.c:21
breakpoint already hit 1 time
(gdb) c
Continuing.
No more reverse-execution history.
0xb7fe3405 in __kernel_vsyscall ()
(gdb) rc
Continuing.
Breakpoint 2, main () at 1.c:21
21 int c = 1;
Thanks,
Hui