aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver/mem-break.c
diff options
context:
space:
mode:
authorYao Qi <yao.qi@linaro.org>2016-04-25 09:46:36 +0100
committerYao Qi <yao.qi@linaro.org>2016-04-25 09:46:36 +0100
commit85ba7d867af39fe1408accd1f9ea4ca3dcb84b99 (patch)
tree8e4b991463b3fe9d2c0ffa7e22a9c17bfabd064f /gdb/gdbserver/mem-break.c
parent20249ae4551ae7b2193caed73d9ce8d594f38754 (diff)
downloadgdb-85ba7d867af39fe1408accd1f9ea4ca3dcb84b99.zip
gdb-85ba7d867af39fe1408accd1f9ea4ca3dcb84b99.tar.gz
gdb-85ba7d867af39fe1408accd1f9ea4ca3dcb84b99.tar.bz2
[GDBserver] Don't error in reinsert_raw_breakpoint if bp->inserted
GDBserver steps over a breakpoint while the single step breakpoint is inserted at the same address, there are two breakpoint objects using single raw breakpoint, which is inserted (for single step). When step over is finished, GDBserver reinsert the breakpoint, but it finds the raw breakpoint is already inserted, and error out "Breakpoint already inserted at reinsert time." Even if I change the order to delete reinsert breakpoints first (which only decreases the refcount, but leave inserted flag unchanged), the error is still there. The fix is to remove the error and return instead. gdb/gdbserver: 2016-04-25 Yao Qi <yao.qi@linaro.org> * linux-low.c (reinsert_raw_breakpoint): If bp->inserted is true return instead of error.
Diffstat (limited to 'gdb/gdbserver/mem-break.c')
-rw-r--r--gdb/gdbserver/mem-break.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gdb/gdbserver/mem-break.c b/gdb/gdbserver/mem-break.c
index 419db9e..363d7ca 100644
--- a/gdb/gdbserver/mem-break.c
+++ b/gdb/gdbserver/mem-break.c
@@ -1515,7 +1515,7 @@ reinsert_raw_breakpoint (struct raw_breakpoint *bp)
int err;
if (bp->inserted)
- error ("Breakpoint already inserted at reinsert time.");
+ return;
err = the_target->insert_point (bp->raw_type, bp->pc, bp->kind, bp);
if (err == 0)