2000-05-10 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
[deliverable/binutils-gdb.git] / gdb / breakpoint.c
index 4e0fc6739697e1bfa90d74d02c3cf5a73acc94c3..89b15909a71777579acefd89e09d28a5356f7c55 100644 (file)
@@ -918,6 +918,7 @@ insert_breakpoints ()
              b->type == bp_read_watchpoint ||
              b->type == bp_access_watchpoint)
             && b->enable == enabled
+            && b->disposition != del_at_next_stop
             && !b->inserted
             && !b->duplicate)
       {
@@ -1020,7 +1021,7 @@ insert_breakpoints ()
          }
        else
          {
-           printf_filtered ("Hardware watchpoint %d deleted", b->number);
+           printf_filtered ("Hardware watchpoint %d deleted ", b->number);
            printf_filtered ("because the program has left the block \n");
            printf_filtered ("in which its expression is valid.\n");
            if (b->related_breakpoint)
@@ -1031,7 +1032,7 @@ insert_breakpoints ()
        /* Restore the frame and level.  */
        if ((saved_frame != selected_frame) ||
            (saved_level != selected_frame_level))
-         select_and_print_frame (saved_frame, saved_level);
+         select_frame (saved_frame, saved_level);
 
        if (val)
          return_val = val;     /* remember failure */
@@ -1094,6 +1095,27 @@ remove_breakpoints ()
   return 0;
 }
 
+int
+remove_hw_watchpoints (void)
+{
+  register struct breakpoint *b;
+  int val;
+
+  ALL_BREAKPOINTS (b)
+  {
+    if (b->inserted
+       && (b->type == bp_hardware_watchpoint
+           || b->type == bp_read_watchpoint
+           || b->type == bp_access_watchpoint))
+      {
+       val = remove_breakpoint (b, mark_uninserted);
+       if (val != 0)
+         return val;
+      }
+  }
+  return 0;
+}
+
 int
 reattach_breakpoints (pid)
      int pid;
@@ -5686,7 +5708,7 @@ until_break_command_continuation (struct continuation_arg *arg)
 {
   struct cleanup *cleanups;
 
-  cleanups = (struct cleanup *) arg->data;
+  cleanups = (struct cleanup *) arg->data.pointer;
   do_exec_cleanups (cleanups);
 }
 
@@ -5750,8 +5772,8 @@ until_break_command (arg, from_tty)
          the exec_cleanup_chain. */
       arg1 =
        (struct continuation_arg *) xmalloc (sizeof (struct continuation_arg));
-      arg1->next = NULL;
-      arg1->data = (PTR) old_chain;
+      arg1->next         = NULL;
+      arg1->data.pointer = old_chain;
 
       add_continuation (until_break_command_continuation, arg1);
     }
@@ -7587,8 +7609,7 @@ have been allocated for other watchpoints.\n", bpt->number);
        }
 
       if (save_selected_frame_level >= 0)
-       select_and_print_frame (save_selected_frame,
-                               save_selected_frame_level);
+       select_frame (save_selected_frame, save_selected_frame_level);
       value_free_to_mark (mark);
     }
   if (modify_breakpoint_hook)
This page took 0.025298 seconds and 4 git commands to generate.