Support vCont s and S actions with software single step
authorYao Qi <yao.qi@linaro.org>
Thu, 21 Jul 2016 11:12:18 +0000 (12:12 +0100)
committerYao Qi <yao.qi@linaro.org>
Thu, 21 Jul 2016 11:12:18 +0000 (12:12 +0100)
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.

gdb/gdbserver/ChangeLog
gdb/gdbserver/server.c

index e55bae08166436e229b64d459d4999d023b32c77..1592a11c52c8cdf9cd74d6082bead83b433dda73 100644 (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
index 18517bccafccfda688a06b16e7dad4f86a735648..6d6cb0923e83c4a6dd374fa3d40a272964abccba 100644 (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");
            }