diff options
author | philippe <philippe> | 2013-05-21 18:47:04 +0000 |
---|---|---|
committer | philippe <philippe> | 2013-05-21 18:47:04 +0000 |
commit | 13f2e76510cd8d5b2da22d958cdcc3dd3e785005 (patch) | |
tree | 6fbca79bb57eee21456f7d97f797a0497de5dabc /gdb/breakpoint.c | |
parent | a5d4bb2f9bfe5ed5911e9e79d0f00a8de790727d (diff) | |
download | gdb-13f2e76510cd8d5b2da22d958cdcc3dd3e785005.tar.gz |
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 bbbaaf56ab3..b4d2f27b7b0 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); } |