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 | 879d1e6b4674bc8c09b64dafad9248fb782c8924 (patch) | |
tree | 513a52b36390d2e5491abe7f26a21a0b9e2dba1d /gdb | |
parent | 97ec2c2fb8734a4a5663b324303b13c6a7d31cea (diff) | |
download | gdb-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')
-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 845b3b5..0477f24 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 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); |