Index: source/Plugins/Process/Linux/NativeProcessLinux.cpp =================================================================== --- source/Plugins/Process/Linux/NativeProcessLinux.cpp +++ source/Plugins/Process/Linux/NativeProcessLinux.cpp @@ -2771,34 +2771,27 @@ if (log) log->Printf ("NativeProcessLinux::%s() received signal %s", __FUNCTION__, GetUnixSignals ().GetSignalAsCString (signo)); + if (signo == SIGSTOP) + { + if (log) + { + if (is_from_llgs) + log->Printf ("NativeProcessLinux::%s pid = %" PRIu64 " tid %" PRIu64 " received SIGSTOP from llgs, most likely an interrupt", __FUNCTION__, GetID (), pid); + else + log->Printf ("NativeProcessLinux::%s pid = %" PRIu64 " tid %" PRIu64 " received SIGSTOP from outside of debugger", __FUNCTION__, GetID (), pid); + } + + // Resume this thread to get the group-stop mechanism to fire off the true group stops. + // This thread will get stopped again as part of the group-stop completion. + Resume (pid, signo); + return; + } + // This thread is stopped. ThreadDidStop (pid, false); switch (signo) { - case SIGSTOP: - { - std::static_pointer_cast (thread_sp)->SetStoppedBySignal (signo); - if (log) - { - if (is_from_llgs) - log->Printf ("NativeProcessLinux::%s pid = %" PRIu64 " tid %" PRIu64 " received SIGSTOP from llgs, most likely an interrupt", __FUNCTION__, GetID (), pid); - else - log->Printf ("NativeProcessLinux::%s pid = %" PRIu64 " tid %" PRIu64 " received SIGSTOP from outside of debugger", __FUNCTION__, GetID (), pid); - } - - // Resume this thread to get the group-stop mechanism to fire off the true group stops. - // This thread will get stopped again as part of the group-stop completion. - ResumeThread(pid, - [=](lldb::tid_t tid_to_resume, bool supress_signal) - { - std::static_pointer_cast (thread_sp)->SetRunning (); - // Pass this signal number on to the inferior to handle. - return Resume (tid_to_resume, (supress_signal) ? LLDB_INVALID_SIGNAL_NUMBER : signo); - }, - true); - } - break; case SIGSEGV: case SIGILL: case SIGFPE: