*** empty log message ***
[deliverable/binutils-gdb.git] / gdb / breakpoint.c
index 176a17cdbe57e8d70d8b5501b40699046be39055..59cb151b516dee7b82d0c6b5be27a9d1ae5d0d74 100644 (file)
@@ -1587,8 +1587,14 @@ remove_breakpoint (struct bp_location *b, insertion_state_t is)
                 don't know what the overlay manager might do.  */
              if (b->loc_type == bp_loc_hardware_breakpoint)
                val = target_remove_hw_breakpoint (&b->target_info);
-             else
+
+             /* However, we should remove *software* breakpoints only
+                if the section is still mapped, or else we overwrite
+                wrong code with the saved shadow contents.  */
+             else if (section_is_mapped (b->section))
                val = target_remove_breakpoint (&b->target_info);
+             else
+               val = 0;
            }
          else
            {
This page took 0.023972 seconds and 4 git commands to generate.