[Lldb-commits] [lldb] r341497 - Set Windows console mode to enable support for ansi escape codes
David Bolvansky via lldb-commits
lldb-commits at lists.llvm.org
Wed Sep 5 15:06:58 PDT 2018
Author: xbolva00
Date: Wed Sep 5 15:06:58 2018
New Revision: 341497
URL: http://llvm.org/viewvc/llvm-project?rev=341497&view=rev
Log:
Set Windows console mode to enable support for ansi escape codes
Summary:
Windows console now supports supports ANSI escape codes, but we need to enable it using SetConsoleMode with ENABLE_VIRTUAL_TERMINAL_PROCESSING flag.
https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences.
Syntax hightlighting now works fine on Windows:
https://i.imgur.com/P0i04A7.png
Reviewers: JDevlieghere, teemperor, zturner
Reviewed By: zturner
Subscribers: abidh, lldb-commits
Differential Revision: https://reviews.llvm.org/D51615
Modified:
lldb/trunk/source/Core/Debugger.cpp
Modified: lldb/trunk/source/Core/Debugger.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Debugger.cpp?rev=341497&r1=341496&r2=341497&view=diff
==============================================================================
--- lldb/trunk/source/Core/Debugger.cpp (original)
+++ lldb/trunk/source/Core/Debugger.cpp Wed Sep 5 15:06:58 2018
@@ -50,6 +50,7 @@
#if defined(_WIN32)
#include "lldb/Host/windows/PosixApi.h" // for PATH_MAX
+#include "lldb/Host/windows/windows.h"
#endif
#include "llvm/ADT/None.h" // for None
@@ -58,6 +59,7 @@
#include "llvm/ADT/iterator.h" // for iterator_facade_...
#include "llvm/Support/DynamicLibrary.h"
#include "llvm/Support/FileSystem.h"
+#include "llvm/Support/Process.h"
#include "llvm/Support/Threading.h"
#include "llvm/Support/raw_ostream.h" // for raw_fd_ostream
@@ -804,6 +806,13 @@ Debugger::Debugger(lldb::LogOutputCallba
// Turn off use-color if we don't write to a terminal with color support.
if (!m_output_file_sp->GetFile().GetIsTerminalWithColors())
SetUseColor(false);
+
+#if defined(_WIN32) && defined(ENABLE_VIRTUAL_TERMINAL_PROCESSING)
+ // Enabling use of ANSI color codes because LLDB is using them to highlight
+ // text.
+ llvm::sys::Process::UseANSIEscapeCodes(true);
+ SetUseColor(true);
+#endif
}
Debugger::~Debugger() { Clear(); }
More information about the lldb-commits
mailing list