aboutsummaryrefslogtreecommitdiff
path: root/gdb/breakpoint.c
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
commit879d1e6b4674bc8c09b64dafad9248fb782c8924 (patch)
tree513a52b36390d2e5491abe7f26a21a0b9e2dba1d /gdb/breakpoint.c
parent97ec2c2fb8734a4a5663b324303b13c6a7d31cea (diff)
downloadgdb-879d1e6b4674bc8c09b64dafad9248fb782c8924.zip
gdb-879d1e6b4674bc8c09b64dafad9248fb782c8924.tar.gz
gdb-879d1e6b4674bc8c09b64dafad9248fb782c8924.tar.bz2
* breakpoint.c (remove_breakpoint): Do not fail if unable to remove
breakpoint from shared library.
Diffstat (limited to 'gdb/breakpoint.c')
-rw-r--r--gdb/breakpoint.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 18e207f..847de00 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);