[Lldb-commits] [lldb] [lldb] Removed gdbserver ports map from lldb-server (PR #104238)
Dmitry Vasilyev via lldb-commits
lldb-commits at lists.llvm.org
Thu Sep 5 05:20:09 PDT 2024
================
@@ -160,66 +95,56 @@ GDBRemoteCommunicationServerPlatform::~GDBRemoteCommunicationServerPlatform() =
default;
Status GDBRemoteCommunicationServerPlatform::LaunchGDBServer(
- const lldb_private::Args &args, std::string hostname, lldb::pid_t &pid,
- std::optional<uint16_t> &port, std::string &socket_name) {
- if (!port) {
- llvm::Expected<uint16_t> available_port = m_port_map.GetNextAvailablePort();
- if (available_port)
- port = *available_port;
- else
- return Status(available_port.takeError());
- }
-
- // Spawn a new thread to accept the port that gets bound after binding to
- // port 0 (zero).
+ const lldb_private::Args &args, lldb::pid_t &pid, std::string &socket_name,
+ shared_fd_t fd) {
+ std::ostringstream url;
+ if (fd == SharedSocket::kInvalidFD) {
+ if (m_socket_protocol == Socket::ProtocolTcp) {
+ // Just check that GDBServer exists. GDBServer must be launched after
+ // accepting the connection.
+ if (!GetDebugserverPath(nullptr))
+ return Status::FromErrorString("unable to locate debugserver");
+ return Status();
----------------
slydiman wrote:
It is inconvenient. It can be called from
GDBRemoteCommunicationServerPlatform::Handle_qLaunchGDBServer()
and
lldb-platform.cpp, client_handle().
We can rename it to something like `CheckOrLaunchGDBServer()`.
BTW, Handle_qLaunchGDBServer() does not really launch the process now too in case of TCP protocol.
https://github.com/llvm/llvm-project/pull/104238
More information about the lldb-commits
mailing list