* breakpoint.c (reattach_breakpoints): Do not use remove_breakpoint.

Call insert_bp_location.
This commit is contained in:
Daniel Jacobowitz
2007-07-02 16:14:01 +00:00
parent 82c01eb610
commit a4954f26af
2 changed files with 12 additions and 11 deletions

View File

@ -1338,23 +1338,19 @@ reattach_breakpoints (int pid)
struct bp_location *b;
int val;
struct cleanup *old_chain = save_inferior_ptid ();
struct ui_file *tmp_error_stream = mem_fileopen ();
int dummy1 = 0, dummy2 = 0, dummy3 = 0;
make_cleanup_ui_file_delete (tmp_error_stream);
/* Set inferior_ptid; remove_breakpoint uses this global. */
inferior_ptid = pid_to_ptid (pid);
ALL_BP_LOCATIONS (b)
{
if (b->inserted)
{
remove_breakpoint (b, mark_inserted);
/* Note: since we insert a breakpoint right after removing,
any decisions about automatically using hardware breakpoints
made in insert_bp_location are preserved. */
if (b->loc_type == bp_loc_hardware_breakpoint)
val = target_insert_hw_breakpoint (&b->target_info);
else
val = target_insert_breakpoint (&b->target_info);
/* FIXME drow/2003-10-07: This doesn't handle any other kinds of
breakpoints. It's wrong for watchpoints, for example. */
b->inserted = 0;
val = insert_bp_location (b, tmp_error_stream,
&dummy1, &dummy2, &dummy3);
if (val != 0)
{
do_cleanups (old_chain);