[Lldb-commits] [lldb] [lldb-dap] Refactoring lldb-dap port listening mode to allow multiple connections. (PR #116392)

John Harrison via lldb-commits lldb-commits at lists.llvm.org
Fri Nov 22 17:13:13 PST 2024


================
@@ -137,42 +141,232 @@ lldb::SBValueList *GetTopLevelScope(DAP &dap, int64_t variablesReference) {
   }
 }
 
-SOCKET AcceptConnection(DAP &dap, int portno) {
-  // Accept a socket connection from any host on "portno".
-  SOCKET newsockfd = -1;
-  struct sockaddr_in serv_addr, cli_addr;
+/// Redirect stdout and stderr fo the IDE's console output.
+///
+/// Errors in this operation will be printed to the log file and the IDE's
+/// console output as well.
+///
+/// \return
+///     A fd pointing to the original stdout.
+void SetupRedirection(DAP &dap, int stdoutfd = -1, int stderrfd = -1) {
----------------
ashgti wrote:

Each `lldb::SBDebugger` instance has its own file for stdout/stderr.

When running in server mode we don't actually redirect stdout/stderr to the DAP connection directly.

When running lldb commands the output is directed to the `lldb::SBDebugger::GetOutputFileHandle` and `lldb::SBDebugger::GetErrorFileHandle`.

the SBDebugger defaults to stdout/stderr, but we can change those since we have one debugger per client connection.

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


More information about the lldb-commits mailing list