From: David Daney Date: Tue, 16 Sep 2008 18:55:01 +0000 (+0000) Subject: * breakpoint.c (bpstat_stop_status): Clear breakpoint_at for X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d832cb68fbbd28120e6311f77e9564d91bc18bee;p=binutils-gdb.git * breakpoint.c (bpstat_stop_status): Clear breakpoint_at for all hardware bpstats. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 05788597aa0..16d68919f33 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2008-09-16 David Daney + + * breakpoint.c (bpstat_stop_status): Clear breakpoint_at for + all hardware bpstats. + 2008-09-16 Joel Brobecker * gstdint.h: Delete. diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 94544285223..6e863d7f4ae 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -3054,6 +3054,7 @@ bpstat_stop_status (CORE_ADDR bp_addr, ptid_t ptid) /* Pointer to the last thing in the chain currently. */ bpstat bs = root_bs; int ix; + int need_remove_insert; ALL_BP_LOCATIONS (bl) { @@ -3146,6 +3147,7 @@ bpstat_stop_status (CORE_ADDR bp_addr, ptid_t ptid) if (bs->stop) break; + need_remove_insert = 0; if (bs == NULL) for (bs = root_bs->next; bs != NULL; bs = bs->next) if (!bs->stop @@ -3158,11 +3160,15 @@ bpstat_stop_status (CORE_ADDR bp_addr, ptid_t ptid) location is no longer used by the watchpoint. Prevent further code from trying to use it. */ bs->breakpoint_at = NULL; - remove_breakpoints (); - insert_breakpoints (); - break; + need_remove_insert = 1; } + if (need_remove_insert) + { + remove_breakpoints (); + insert_breakpoints (); + } + return root_bs->next; }