diff options
author | Philippe Waroquiers <philippe@sourceware.org> | 2013-05-21 18:47:05 +0000 |
---|---|---|
committer | Philippe Waroquiers <philippe@sourceware.org> | 2013-05-21 18:47:05 +0000 |
commit | bd9673a4ded96ea5c108601501c8e59003ea1be6 (patch) | |
tree | 757770a34bd9bff6d249e0ba8a901bb92640ecfd /gdb/breakpoint.c | |
parent | 69a97597d5af4e493917ad93bc25899cd6344c0d (diff) | |
download | gdb-bd9673a4ded96ea5c108601501c8e59003ea1be6.zip gdb-bd9673a4ded96ea5c108601501c8e59003ea1be6.tar.gz gdb-bd9673a4ded96ea5c108601501c8e59003ea1be6.tar.bz2 |
Fix internal error caused by interaction between catch signal and fork
Diffstat (limited to 'gdb/breakpoint.c')
-rw-r--r-- | gdb/breakpoint.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index bbbaaf5..b4d2f27 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -3537,6 +3537,15 @@ detach_breakpoints (ptid_t ptid) if (bl->pspace != inf->pspace) continue; + /* This function must physically remove breakpoints locations + from the specified ptid, without modifying the breakpoint + package's state. Locations of type bp_loc_other are only + maintained at GDB side. So, there is no need to remove + these bp_loc_other locations. Moreover, removing these + would modify the breakpoint package's state. */ + if (bl->loc_type == bp_loc_other) + continue; + if (bl->inserted) val |= remove_breakpoint_1 (bl, mark_inserted); } |