================ @@ -1154,34 +1154,38 @@ class DebugAdaptorServer(DebugCommunication): def __init__( self, executable=None, + launch=True, port=None, + unix_socket=None, init_commands=[], log_file=None, env=None, ): self.process = None - if executable is not None: - adaptor_env = os.environ.copy() - if env is not None: - adaptor_env.update(env) - - if log_file: - adaptor_env["LLDBDAP_LOG"] = log_file - self.process = subprocess.Popen( - [executable], - stdin=subprocess.PIPE, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - env=adaptor_env, + if launch: + self.process = DebugAdaptorServer.launch( + executable, + port=port, + unix_socket=unix_socket, + log_file=log_file, + env=env, ) - DebugCommunication.__init__( - self, self.process.stdout, self.process.stdin, init_commands, log_file - ) - elif port is not None: + + if port: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("127.0.0.1", port)) DebugCommunication.__init__( - self, s.makefile("r"), s.makefile("w"), init_commands + self, s.makefile("rb"), s.makefile("wb"), init_commands, log_file + ) + elif unix_socket: + s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + s.connect(unix_socket) + DebugCommunication.__init__( + self, s.makefile("rb"), s.makefile("wb"), init_commands, log_file + ) ---------------- labath wrote:
Supporting unix sockets *only* would not be good, as then this wouldn't work on windows. However, TCP/IP works everywhere, so it *might* be sufficient to only support those? I don't think its my place to tell you you shouldn't implement that, but I also don't want you to think that's a prerequisite for this feature (making sure it possible to add the functionality later is nice, but I think we could forego the actual implementation until someone actually needs it). https://github.com/llvm/llvm-project/pull/116392 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits