* gas/mips/mips.exp (run_dump_test_arch): Check for the presence
[deliverable/binutils-gdb.git] / gdb / remote.c
index 71eee5d892abd1ee6ab04fa29fc5b44b9c61cc75..68e5678bf79a9724097a5433151bc49669897b97 100644 (file)
@@ -2353,7 +2353,7 @@ remote_get_threadlist (int startflag, threadref *nextthread, int result_limit,
   getpkt (&rs->buf, &rs->buf_size, 0);
 
   if (*rs->buf == '\0')
-    *result_count = 0;
+    return 0;
   else
     *result_count =
       parse_threadlist_response (rs->buf + 2, result_limit, &echo_nextthread,
@@ -4416,6 +4416,12 @@ append_resumption (char *p, char *endp,
   return p;
 }
 
+static int
+currently_stepping_callback (struct thread_info *tp, void *data)
+{
+  return currently_stepping (tp);
+}
+
 /* Resume the remote inferior by using a "vCont" packet.  The thread
    to be resumed is PTID; STEP and SIGGNAL indicate whether the
    resumed thread should be single-stepped and/or signalled.  If PTID
@@ -4458,6 +4464,8 @@ remote_vcont_resume (ptid_t ptid, int step, enum target_signal siggnal)
     }
   else if (ptid_equal (ptid, minus_one_ptid) || ptid_is_pid (ptid))
     {
+      struct thread_info *tp;
+
       /* Resume all threads (of all processes, or of a single
         process), with preference for INFERIOR_PTID.  This assumes
         inferior_ptid belongs to the set of all threads we are about
@@ -4468,6 +4476,12 @@ remote_vcont_resume (ptid_t ptid, int step, enum target_signal siggnal)
          p = append_resumption (p, endp, inferior_ptid, step, siggnal);
        }
 
+      tp = iterate_over_threads (currently_stepping_callback, NULL);
+      if (tp && !ptid_equal (tp->ptid, inferior_ptid))
+       {
+         p = append_resumption (p, endp, tp->ptid, 1, TARGET_SIGNAL_0);
+       }
+
       /* And continue others without a signal.  */
       p = append_resumption (p, endp, ptid, /*step=*/ 0, TARGET_SIGNAL_0);
     }
@@ -6667,7 +6681,8 @@ readchar (int timeout)
       error (_("Remote connection closed"));
       /* no return */
     case SERIAL_ERROR:
-      perror_with_name (_("Remote communication error"));
+      pop_target ();
+      perror_with_name (_("Remote communication error.  Target disconnected."));
       /* no return */
     case SERIAL_TIMEOUT:
       break;
@@ -9746,7 +9761,7 @@ remote_download_tracepoint (struct breakpoint *t)
              if (target_static_tracepoint_marker_at (tpaddr, &marker))
                strcat (buf, ":S");
              else
-               error ("Static tracepoint not valid during download");
+               error (_("Static tracepoint not valid during download"));
            }
          else
            /* Fast tracepoints are functionally identical to regular
This page took 0.024213 seconds and 4 git commands to generate.