clayborg requested changes to this revision.
clayborg added inline comments.
This revision now requires changes to proceed.


================
Comment at: lldb/tools/lldb-vscode/lldb-vscode.cpp:1202-1212
   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 (out && !g_vsc.input.descriptor.m_is_socket) {
+    // 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
----------------
Test if this is a socket first so we don't open dev null is we don't need to:

```
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);
    }
}
```


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D71633



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to