Resume the inferior with signal rather than stepping over
authorYao Qi <yao.qi@linaro.org>
Mon, 25 Apr 2016 08:46:36 +0000 (09:46 +0100)
committerYao Qi <yao.qi@linaro.org>
Mon, 25 Apr 2016 08:46:36 +0000 (09:46 +0100)
commit484b3c325d8182cd7b7da4ceeaedc238c7f80b5c
tree0d468ee77e93a0a6d5e847ebc654cd5962836e1e
parent85ba7d867af39fe1408accd1f9ea4ca3dcb84b99
Resume the inferior with signal rather than stepping over

When GDBserver steps over a breakpoint using software single step, it
enqueues the signal, single step and deliver the signal in the next
resume if step over is not needed.  In this way, the program won't
receive the signal if the conditional breakpoint is set a branch to
self instruction, because the step over is always needed.

This patch removes the restriction that don't deliver the signal to
the inferior if we are trying to reinsert a breakpoint for software
single step and change the decision on resume vs. step-over when the
LWP has pending signals to deliver.

gdb/gdbserver:

2016-04-25  Yao Qi  <yao.qi@linaro.org>

* linux-low.c (lwp_signal_can_be_delivered): Adjust.
(need_step_over_p): Return zero if the LWP has pending signals
can be delivered on software single step target.
gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-low.c