summaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2008-08-26 17:36:44 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2008-08-26 17:36:44 +0000
commit79621f496325d0444660b4196d050381ce629cb6 (patch)
tree8539abd2bafccaeca94e8e835c912605d24b14d4 /gdb
parent9c1a18b5813ca5b08dc2bd9ec7f3e38ee4380663 (diff)
downloadgdb-79621f496325d0444660b4196d050381ce629cb6.tar.gz
* breakpoint.c (remove_breakpoint): Do not fail if unable to remove
breakpoint from shared library.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/breakpoint.c7
2 files changed, 12 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 845b3b581ce..0477f24f67c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2008-08-26 Ulrich Weigand <uweigand@de.ibm.com>
+ * breakpoint.c (remove_breakpoint): Do not fail if unable to remove
+ breakpoint from shared library.
+
+2008-08-26 Ulrich Weigand <uweigand@de.ibm.com>
+
* solib-svr4.c (read_program_header): New function.
(scan_dyntag_auxv): New function.
(elf_locate_base): Use it if scan_dyntag fails.
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 18e207fdf8d..847de00610e 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -1665,6 +1665,13 @@ remove_breakpoint (struct bp_location *b, insertion_state_t is)
val = 0;
}
}
+
+ /* In some cases, we might not be able to remove a breakpoint
+ in a shared library that has already been removed, but we
+ have not yet processed the shlib unload event. */
+ if (val && solib_address (b->address))
+ val = 0;
+
if (val)
return val;
b->inserted = (is == mark_inserted);