Skip to content

[lldb] Disable statusline on Windows #138111

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 1, 2025

Conversation

DavidSpickett
Copy link
Collaborator

Something to do with control code handling in Windows terminals breaks the statusline in various ways. It makes LLDB unusable and even if you set the setting to disable statusline, it's too late, and the terminal session is now in a weird state.

See #134846 for more details.

Until we figure this out, don't allow it to be used on Windows.

Something to do with control code handling in Windows terminals
breaks the statusline in various ways. It makes LLDB unusable and
even if you set the setting to disable statusline, it's too late,
and the terminal session is now in a weird state.

See llvm#134846
for more details.

Until we figure this out, don't allow it to be used on Windows.
@llvmbot llvmbot added the lldb label May 1, 2025
@llvmbot
Copy link
Member

llvmbot commented May 1, 2025

@llvm/pr-subscribers-lldb

Author: David Spickett (DavidSpickett)

Changes

Something to do with control code handling in Windows terminals breaks the statusline in various ways. It makes LLDB unusable and even if you set the setting to disable statusline, it's too late, and the terminal session is now in a weird state.

See #134846 for more details.

Until we figure this out, don't allow it to be used on Windows.


Full diff: https://github.com/llvm/llvm-project/pull/138111.diff

3 Files Affected:

  • (modified) lldb/source/Core/CoreProperties.td (+1-1)
  • (modified) lldb/source/Core/Debugger.cpp (+4)
  • (modified) llvm/docs/ReleaseNotes.md (+2-1)
diff --git a/lldb/source/Core/CoreProperties.td b/lldb/source/Core/CoreProperties.td
index bfba26f85748f..2498841b47d9f 100644
--- a/lldb/source/Core/CoreProperties.td
+++ b/lldb/source/Core/CoreProperties.td
@@ -177,7 +177,7 @@ let Definition = "debugger" in {
   def ShowStatusline: Property<"show-statusline", "Boolean">,
     Global,
     DefaultTrue,
-    Desc<"Whether to show a statusline at the bottom of the terminal.">;
+    Desc<"Whether to show a statusline at the bottom of the terminal (not supported on Windows).">;
   def Separator : Property<"separator", "String">,
                   Global,
                   DefaultStringValue<"│ ">,
diff --git a/lldb/source/Core/Debugger.cpp b/lldb/source/Core/Debugger.cpp
index 25bb42bad152c..89018da8c685d 100644
--- a/lldb/source/Core/Debugger.cpp
+++ b/lldb/source/Core/Debugger.cpp
@@ -2031,6 +2031,9 @@ void Debugger::CancelForwardEvents(const ListenerSP &listener_sp) {
 }
 
 bool Debugger::StatuslineSupported() {
+// We have trouble with the contol codes on Windows, see
+// https://github.com/llvm/llvm-project/issues/134846.
+#ifndef _WIN32
   if (GetShowStatusline()) {
     if (lldb::LockableStreamFileSP stream_sp = GetOutputStreamSP()) {
       File &file = stream_sp->GetUnlockedFile();
@@ -2038,6 +2041,7 @@ bool Debugger::StatuslineSupported() {
              file.GetIsTerminalWithColors();
     }
   }
+#endif
   return false;
 }
 
diff --git a/llvm/docs/ReleaseNotes.md b/llvm/docs/ReleaseNotes.md
index 3972e028abfd6..e3468eae22800 100644
--- a/llvm/docs/ReleaseNotes.md
+++ b/llvm/docs/ReleaseNotes.md
@@ -249,7 +249,8 @@ Changes to LLDB
 * A statusline was added to command-line LLDB to show progress events and
   information about the current state of the debugger at the bottom of the
   terminal. This is on by default and can be configured using the
-  `show-statusline` and `statusline-format` settings.
+  `show-statusline` and `statusline-format` settings. It is not currently
+  supported on Windows.
 * The `min-gdbserver-port` and `max-gdbserver-port` options have been removed
   from `lldb-server`'s platform mode. Since the changes to `lldb-server`'s port
   handling in LLDB 20, these options have had no effect.

@DavidSpickett
Copy link
Collaborator Author

Tests are pexpect so they're not running on Windows anyway.

@DavidSpickett DavidSpickett merged commit 09488bc into llvm:main May 1, 2025
13 checks passed
@DavidSpickett DavidSpickett deleted the lldb-winstatus branch May 1, 2025 15:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants