Automatic date update in version.in
[deliverable/binutils-gdb.git] / gdb / linux-nat.c
index cd5cf1830d3fdc1ed4f48b7571f30538cb35dc4e..bc397961c82d05787cfb9a4aea47e685cf6c7550 100644 (file)
@@ -1468,7 +1468,7 @@ linux_nat_target::detach (inferior *inf, int from_tty)
      inferiors running. */
 
   /* Stop all threads before detaching.  ptrace requires that the
-     thread is stopped to sucessfully detach.  */
+     thread is stopped to successfully detach.  */
   iterate_over_lwps (ptid_t (pid), stop_callback);
   /* ... and wait until all of them have reported back that
      they're no longer running.  */
@@ -3146,9 +3146,12 @@ linux_nat_filter_event (int lwpid, int status)
 
       /* When using hardware single-step, we need to report every signal.
         Otherwise, signals in pass_mask may be short-circuited
-        except signals that might be caused by a breakpoint.  */
+        except signals that might be caused by a breakpoint, or SIGSTOP
+        if we sent the SIGSTOP and are waiting for it to arrive.  */
       if (!lp->step
          && WSTOPSIG (status) && sigismember (&pass_mask, WSTOPSIG (status))
+         && (WSTOPSIG (status) != SIGSTOP
+             || !find_thread_ptid (lp->ptid)->stop_requested)
          && !linux_wstatus_maybe_breakpoint (status))
        {
          linux_resume_one_lwp (lp, lp->step, signo);
@@ -3303,7 +3306,7 @@ linux_nat_wait_1 (ptid_t ptid, struct target_waitstatus *ourstatus,
         - If the thread group leader exits while other threads in the
           thread group still exist, waitpid(TGID, ...) hangs.  That
           waitpid won't return an exit status until the other threads
-          in the group are reapped.
+          in the group are reaped.
 
         - When a non-leader thread execs, that thread just vanishes
           without reporting an exit (so we'd hang if we waited for it
@@ -3723,7 +3726,7 @@ linux_nat_target::kill ()
       ptid_t ptid = ptid_t (inferior_ptid.pid ());
 
       /* Stop all threads before killing them, since ptrace requires
-        that the thread is stopped to sucessfully PTRACE_KILL.  */
+        that the thread is stopped to successfully PTRACE_KILL.  */
       iterate_over_lwps (ptid, stop_callback);
       /* ... and wait until all of them have reported back that
         they're no longer running.  */
This page took 0.02522 seconds and 4 git commands to generate.