mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
Remove single-step breakpoint for GDBserver internal event
This patch removes single-step breakpoints if the event is only GDBserver internal, IOW, isn't reported back to GDB. gdb/gdbserver: 2016-10-27 Yao Qi <yao.qi@linaro.org> * linux-low.c (linux_wait_1): If single-step breakpoints are inserted, remove them.
This commit is contained in:
parent
bb65a718b6
commit
e3652c8460
@ -1,3 +1,8 @@
|
||||
2016-10-27 Yao Qi <yao.qi@linaro.org>
|
||||
|
||||
* linux-low.c (linux_wait_1): If single-step breakpoints are
|
||||
inserted, remove them.
|
||||
|
||||
2016-10-26 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* linux-low.c (handle_extended_wait): Link parent/child fork
|
||||
|
@ -3684,17 +3684,31 @@ linux_wait_1 (ptid_t ptid,
|
||||
(*the_low_target.set_pc) (regcache, event_child->stop_pc);
|
||||
}
|
||||
|
||||
/* We may have finished stepping over a breakpoint. If so,
|
||||
we've stopped and suspended all LWPs momentarily except the
|
||||
stepping one. This is where we resume them all again. We're
|
||||
going to keep waiting, so use proceed, which handles stepping
|
||||
over the next breakpoint. */
|
||||
if (step_over_finished)
|
||||
{
|
||||
/* If we have finished stepping over a breakpoint, we've
|
||||
stopped and suspended all LWPs momentarily except the
|
||||
stepping one. This is where we resume them all again.
|
||||
We're going to keep waiting, so use proceed, which
|
||||
handles stepping over the next breakpoint. */
|
||||
unsuspend_all_lwps (event_child);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Remove the single-step breakpoints if any. Note that
|
||||
there isn't single-step breakpoint if we finished stepping
|
||||
over. */
|
||||
if (can_software_single_step ()
|
||||
&& has_single_step_breakpoints (current_thread))
|
||||
{
|
||||
stop_all_lwps (0, event_child);
|
||||
delete_single_step_breakpoints (current_thread);
|
||||
unstop_all_lwps (0, event_child);
|
||||
}
|
||||
}
|
||||
|
||||
if (debug_threads)
|
||||
debug_printf ("proceeding all threads.\n");
|
||||
|
||||
if (step_over_finished)
|
||||
unsuspend_all_lwps (event_child);
|
||||
|
||||
proceed_all_lwps ();
|
||||
|
||||
if (debug_threads)
|
||||
|
Loading…
Reference in New Issue
Block a user