[Lldb-commits] [PATCH] D71633: [lldb-vscode] Only close the debuggers in/out when DAP is over stdin/out

Nathan Lanza via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Dec 18 11:26:22 PST 2019


lanza updated this revision to Diff 234586.
lanza added a comment.

fixup according to Greg's requests


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71633/new/

https://reviews.llvm.org/D71633

Files:
  lldb/tools/lldb-vscode/lldb-vscode.cpp


Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===================================================================
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -1199,14 +1199,18 @@
   // before we are given an executable to launch in a "launch" request, or a
   // executable when attaching to a process by process ID in a "attach"
   // request.
-  FILE *out = llvm::sys::RetryAfterSignal(nullptr, fopen, dev_null_path, "w");
-  if (out) {
-    // Set the output and error file handles to redirect into nothing otherwise
-    // if any code in LLDB prints to the debugger file handles, the output and
-    // error file handles are initialized to STDOUT and STDERR and any output
-    // will kill our debug session.
-    g_vsc.debugger.SetOutputFileHandle(out, true);
-    g_vsc.debugger.SetErrorFileHandle(out, false);
+  if (!g_vsc.input.descriptor.m_is_socket) {
+    FILE *out = llvm::sys::RetryAfterSignal(nullptr, fopen, dev_null_path, "w");
+    if (out) {
+      // If the input and output descriptors are STDIN and STDOUT then we need
+      // to set the output and error file handles to redirect into nothing
+      // otherwise if any code in LLDB prints to the debugger file handles, the
+      // output and error file handles are initialized to STDOUT and STDERR and
+      // any output will kill our debug session. However, if the communication
+      // is via sockets then we can leave these open.
+      g_vsc.debugger.SetOutputFileHandle(out, true);
+      g_vsc.debugger.SetErrorFileHandle(out, false);
+    }
   }
 
   g_vsc.target = g_vsc.debugger.CreateTarget(nullptr);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D71633.234586.patch
Type: text/x-patch
Size: 1640 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20191218/79c29503/attachment.bin>


More information about the lldb-commits mailing list