Support vCont s and S actions with software single step

GDBserver with software single step should be able to claim supporting
vCont s and S actions, so that GDB knows the remote target can do
single step.  It doesn't matter to GDB that the single step in the
remote target is done via hardware or software.

gdb/gdbserver:

2016-07-21  Yao Qi  <yao.qi@linaro.org>

	* server.c (handle_v_requests): Support s and S actions
	if target_supports_software_single_step return true.
This commit is contained in:
Yao Qi 2016-07-21 12:12:18 +01:00
parent 8901d1936e
commit 21536b367c
2 changed files with 13 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2016-07-21 Yao Qi <yao.qi@linaro.org>
* server.c (handle_v_requests): Support s and S actions
if target_supports_software_single_step return true.
2016-07-21 Yao Qi <yao.qi@linaro.org>
* linux-low.c (resume_stopped_resumed_lwps): If resume request

View File

@ -2958,12 +2958,15 @@ handle_v_requests (char *own_buf, int packet_len, int *new_packet_len)
{
strcpy (own_buf, "vCont;c;C;t");
if (target_supports_hardware_single_step () || !vCont_supported)
if (target_supports_hardware_single_step ()
|| target_supports_software_single_step ()
|| !vCont_supported)
{
/* If target supports hardware single step, add actions s
and S to the list of supported actions. On the other
hand, if GDB doesn't request the supported vCont actions
in qSupported packet, add s and S to the list too. */
/* If target supports single step either by hardware or by
software, add actions s and S to the list of supported
actions. On the other hand, if GDB doesn't request the
supported vCont actions in qSupported packet, add s and
S to the list too. */
own_buf = own_buf + strlen (own_buf);
strcpy (own_buf, ";s;S");
}