[Lldb-commits] [lldb] [lldb] Removed gdbserver ports map from lldb-server (PR #104238)

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Thu Sep 5 03:01:45 PDT 2024


================
@@ -150,12 +153,17 @@ static void client_handle(GDBRemoteCommunicationServerPlatform &platform,
   printf("Disconnected.\n");
 }
 
-static GDBRemoteCommunicationServerPlatform::PortMap gdbserver_portmap;
-static std::mutex gdbserver_portmap_mutex;
-
 static void spawn_process_reaped(lldb::pid_t pid, int signal, int status) {
-  std::lock_guard<std::mutex> guard(gdbserver_portmap_mutex);
-  gdbserver_portmap.FreePortForProcess(pid);
+  if (g_single_pid != LLDB_INVALID_PROCESS_ID && g_single_pid == pid) {
+    // If not running as a server and the platform connection is closed
+    if (!g_terminate) {
+      g_terminate = true;
----------------
labath wrote:

Ok, I see what you meant with https://github.com/llvm/llvm-project/issues/101475 now. That said I don't think this solves anything, cause the same thing could now happen with the mainloop pointer (if it is destroyed just as this function is exiting). The way I'd ideally solve this is by ensuring that the main loop does not terminate (which means the main loop and the platform objects will not be destroyed) until this function is called.

https://github.com/llvm/llvm-project/pull/104238


More information about the lldb-commits mailing list