diff --git a/gdb/ChangeLog b/gdb/ChangeLog index bdd28feef9..c5ffe4715b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2016-08-10 Pedro Alves + + PR gdb/19187 + * record-full.c (record_full_remove_breakpoint): Don't remove the + breakpoint from the record_full_breakpoints VEC if we're detaching + the breakpoint from a fork child. + 2016-08-10 Pedro Alves PR gdb/19187 diff --git a/gdb/record-full.c b/gdb/record-full.c index 4134f395e6..37773159a6 100644 --- a/gdb/record-full.c +++ b/gdb/record-full.c @@ -1731,8 +1731,11 @@ record_full_remove_breakpoint (struct target_ops *ops, return ret; } - VEC_unordered_remove (record_full_breakpoint_p, - record_full_breakpoints, ix); + if (reason == REMOVE_BREAKPOINT) + { + VEC_unordered_remove (record_full_breakpoint_p, + record_full_breakpoints, ix); + } return 0; } } diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 1b9ffed384..bfd1748fbf 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2016-08-10 Pedro Alves + + PR gdb/19187 + * gdb.reverse/waitpid-reverse.exp: Add comment and remove + setup_kfails. + 2016-08-09 Pedro Alves Simon Marchi diff --git a/gdb/testsuite/gdb.reverse/waitpid-reverse.exp b/gdb/testsuite/gdb.reverse/waitpid-reverse.exp index d583953ede..e8a1690268 100644 --- a/gdb/testsuite/gdb.reverse/waitpid-reverse.exp +++ b/gdb/testsuite/gdb.reverse/waitpid-reverse.exp @@ -18,6 +18,8 @@ # # This test tests waitpid syscall for reverse execution. # +# Also serves as regression test for gdb/19187 (recording across a +# fork). if ![supports_reverse] { return @@ -40,14 +42,12 @@ gdb_test "break marker2" \ "Breakpoint $decimal at $hex: file .*$srcfile, line $decimal.*" \ "set breakpoint at marker2" -setup_kfail "gdb/19187" *-*-* gdb_continue_to_breakpoint "marker2" ".*$srcfile:.*" gdb_test "break marker1" \ "Breakpoint $decimal at $hex: file .*$srcfile, line $decimal.*" \ "set breakpoint at marker1" -setup_kfail "gdb/19187" *-*-* gdb_test "reverse-continue" ".*$srcfile:$decimal.*" "reverse to marker1" # If the variable was recorded properly on syscall, the old contents (-1)