From a4954f26af9ede8ca8273d628032c0f632728b40 Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Mon, 2 Jul 2007 16:14:01 +0000 Subject: [PATCH] * breakpoint.c (reattach_breakpoints): Do not use remove_breakpoint. Call insert_bp_location. --- gdb/ChangeLog | 5 +++++ gdb/breakpoint.c | 18 +++++++----------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9e42a99d61..d16ca15eee 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2007-07-02 Daniel Jacobowitz + + * breakpoint.c (reattach_breakpoints): Do not use remove_breakpoint. + Call insert_bp_location. + 2007-07-01 H.J. Lu * core-regset.c (fetch_core_registers): Work around gcc 3.4 diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 5e36d93acd..e294315bf6 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -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); -- 2.34.1