aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
diff options
context:
space:
mode:
authorMichał Górny <mgorny@moritz.systems>2022-06-27 14:22:38 +0200
committerMichał Górny <mgorny@moritz.systems>2022-06-28 21:49:17 +0200
commit261d0033500eaa281b74c9d54ae240257a0ea00c (patch)
treeac0fd7790cddaf0c3cfe47e20a3214df42b21339 /lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
parentb415f8e3dfb839a886b5290bbebbdd42344c07a9 (diff)
downloadllvm-261d0033500eaa281b74c9d54ae240257a0ea00c.zip
llvm-261d0033500eaa281b74c9d54ae240257a0ea00c.tar.gz
llvm-261d0033500eaa281b74c9d54ae240257a0ea00c.tar.bz2
[lldb] [llgs] Fix premature server exit if multiprocess+nonstop
Fix lldb-server in the non-stop + multiprocess mode to exit on vStopped only if all processes have exited, rather than when the first one exits. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D128639
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp')
-rw-r--r--lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
index 49125f9..63174ef 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
@@ -3860,9 +3860,9 @@ GDBRemoteCommunicationServerLLGS::Handle_vStopped(
m_stop_notification_queue.pop_front();
if (!m_stop_notification_queue.empty())
return SendPacketNoLock(m_stop_notification_queue.front());
- // If this was the last notification and the process exited, terminate
- // the server.
- if (m_inferior_prev_state == eStateExited) {
+ // If this was the last notification and all the processes exited,
+ // terminate the server.
+ if (m_debugged_processes.empty()) {
m_exit_now = true;
m_mainloop.RequestTermination();
}