[Lldb-commits] [lldb] [lldb] Removed gdbserver ports map from lldb-server (PR #104238)
Pavel Labath via lldb-commits
lldb-commits at lists.llvm.org
Mon Sep 23 05:31:19 PDT 2024
================
@@ -393,125 +362,222 @@ int main_platform(int argc, char *argv[]) {
lldb_private::Args inferior_arguments;
inferior_arguments.SetArguments(argc, const_cast<const char **>(argv));
+ Socket::SocketProtocol protocol = Socket::ProtocolUnixDomain;
+
if (fd != SharedSocket::kInvalidFD) {
// Child process will handle the connection and exit.
+ if (gdbserver_port)
+ protocol = Socket::ProtocolTcp;
+
Log *log = GetLog(LLDBLog::Platform);
- if (!listen_host_port.empty()) {
- LLDB_LOGF(log, "lldb-platform child: "
- "ambiguous parameters --listen and --child-platform-fd");
- return socket_error;
- }
- NativeSocket socket;
- error = SharedSocket::GetNativeSocket(fd, socket);
+ NativeSocket sockfd;
+ error = SharedSocket::GetNativeSocket(fd, sockfd);
if (error.Fail()) {
LLDB_LOGF(log, "lldb-platform child: %s", error.AsCString());
return socket_error;
}
- GDBRemoteCommunicationServerPlatform platform(Socket::ProtocolTcp, "tcp");
- if (port_offset > 0)
- platform.SetPortOffset(port_offset);
- platform.SetPortMap(std::move(gdbserver_portmap));
+ GDBRemoteCommunicationServerPlatform platform(protocol, gdbserver_port);
+ Socket *socket;
+ if (protocol == Socket::ProtocolTcp)
+ socket = new TCPSocket(sockfd, /*should_close=*/true,
+ /*child_processes_inherit=*/false);
+ else {
+#if LLDB_ENABLE_POSIX
+ socket = new DomainSocket(sockfd, /*should_close=*/true,
+ /*child_processes_inherit=*/false);
+#else
+ LLDB_LOGF(log,
+ "lldb-platform child: Unix domain sockets are not supported on "
+ "this platform.");
----------------
labath wrote:
print to stderr instead?
https://github.com/llvm/llvm-project/pull/104238
More information about the lldb-commits
mailing list