diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2008-08-26 17:36:44 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2008-08-26 17:36:44 +0000 |
commit | 79621f496325d0444660b4196d050381ce629cb6 (patch) | |
tree | 8539abd2bafccaeca94e8e835c912605d24b14d4 /gdb | |
parent | 9c1a18b5813ca5b08dc2bd9ec7f3e38ee4380663 (diff) | |
download | gdb-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/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/breakpoint.c | 7 |
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); |