gdb/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Thu, 11 Feb 2010 22:25:27 +0000 (22:25 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Thu, 11 Feb 2010 22:25:27 +0000 (22:25 +0000)
* breakpoint.c (delete_breakpoint) <bpt->related_breakpoint != NULL>:
New.

gdb/ChangeLog
gdb/breakpoint.c

index d9b7c607cbb4c1ff22c95ceb3c591f2a868ec32c..17753a99d67e8f5abcd18c4d0786aa2dd9c6ee50 100644 (file)
@@ -1,3 +1,8 @@
+2010-02-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * breakpoint.c (delete_breakpoint) <bpt->related_breakpoint != NULL>:
+       New.
+
 2010-02-11  Pedro Alves  <pedro@codesourcery.com>
 
        * ax-gdb.c (gen_exp_binop_rest) [BINOP_SUBSCRIPT]: Error out on
index 0d558625709e1ce3cb89afa00a62b42a378cad53..4b2daf014d88b8851aa65c5eacf92ce412c8f579 100644 (file)
@@ -8691,6 +8691,16 @@ delete_breakpoint (struct breakpoint *bpt)
   if (bpt->type == bp_none)
     return;
 
+  /* At least avoid this stale reference until the reference counting of
+     breakpoints gets resolved.  */
+  if (bpt->related_breakpoint != NULL)
+    {
+      gdb_assert (bpt->related_breakpoint->related_breakpoint == bpt);
+      bpt->related_breakpoint->disposition = disp_del_at_next_stop;
+      bpt->related_breakpoint->related_breakpoint = NULL;
+      bpt->related_breakpoint = NULL;
+    }
+
   observer_notify_breakpoint_deleted (bpt->number);
 
   if (breakpoint_chain == bpt)