mstorsjo created this revision.
mstorsjo added reviewers: labath, zturner, amccarth, aleksandr.urakov.
Herald added a subscriber: JDevlieghere.
Herald added a project: LLDB.
When running the lldb command line debugger in a console, it can be convenient
to get the output of the debuggee inline in the same console.
The same behaviour also seems possible to enable by setting the
eLaunchFlagDisableSTDIO flag somehow, but I wasn't able to figure out how to
set that when calling the normal lldb.exe.
Also extend a nearby getenv() call to check for both "true" and "1".
There seems to be a number of different patterns for using getenv() in lldb;
either just check for a variable being set (most common), or check for a number
of different values. The check for LLDB_LAUNCH_INFERIORS_WITHOUT_CONSOLE only
used to check for the string "true", while e.g. the newly added check for
LLDB_USE_LLDB_SERVER in
source/Plugins/Process/Windows/Common/ProcessWindows.cpp checks for any of
on/yes/1/true.
Repository:
rLLDB LLDB
https://reviews.llvm.org/D70387
Files:
lldb/source/Host/windows/ProcessLauncherWindows.cpp
Index: lldb/source/Host/windows/ProcessLauncherWindows.cpp
===================================================================
--- lldb/source/Host/windows/ProcessLauncherWindows.cpp
+++ lldb/source/Host/windows/ProcessLauncherWindows.cpp
@@ -80,7 +80,8 @@
const char *hide_console_var =
getenv("LLDB_LAUNCH_INFERIORS_WITHOUT_CONSOLE");
if (hide_console_var &&
- llvm::StringRef(hide_console_var).equals_lower("true")) {
+ (llvm::StringRef(hide_console_var).equals_lower("true") ||
+ llvm::StringRef(hide_console_var).equals_lower("1"))) {
startupinfo.dwFlags |= STARTF_USESHOWWINDOW;
startupinfo.wShowWindow = SW_HIDE;
}
@@ -89,7 +90,11 @@
if (launch_info.GetFlags().Test(eLaunchFlagDebug))
flags |= DEBUG_ONLY_THIS_PROCESS;
- if (launch_info.GetFlags().Test(eLaunchFlagDisableSTDIO))
+ const char *inherit_console_var = getenv("LLDB_INHERIT_CONSOLE");
+ if (launch_info.GetFlags().Test(eLaunchFlagDisableSTDIO) ||
+ (inherit_console_var &&
+ (llvm::StringRef(inherit_console_var).equals_lower("true") ||
+ llvm::StringRef(inherit_console_var).equals_lower("1"))))
flags &= ~CREATE_NEW_CONSOLE;
LPVOID env_block = nullptr;
Index: lldb/source/Host/windows/ProcessLauncherWindows.cpp
===================================================================
--- lldb/source/Host/windows/ProcessLauncherWindows.cpp
+++ lldb/source/Host/windows/ProcessLauncherWindows.cpp
@@ -80,7 +80,8 @@
const char *hide_console_var =
getenv("LLDB_LAUNCH_INFERIORS_WITHOUT_CONSOLE");
if (hide_console_var &&
- llvm::StringRef(hide_console_var).equals_lower("true")) {
+ (llvm::StringRef(hide_console_var).equals_lower("true") ||
+ llvm::StringRef(hide_console_var).equals_lower("1"))) {
startupinfo.dwFlags |= STARTF_USESHOWWINDOW;
startupinfo.wShowWindow = SW_HIDE;
}
@@ -89,7 +90,11 @@
if (launch_info.GetFlags().Test(eLaunchFlagDebug))
flags |= DEBUG_ONLY_THIS_PROCESS;
- if (launch_info.GetFlags().Test(eLaunchFlagDisableSTDIO))
+ const char *inherit_console_var = getenv("LLDB_INHERIT_CONSOLE");
+ if (launch_info.GetFlags().Test(eLaunchFlagDisableSTDIO) ||
+ (inherit_console_var &&
+ (llvm::StringRef(inherit_console_var).equals_lower("true") ||
+ llvm::StringRef(inherit_console_var).equals_lower("1"))))
flags &= ~CREATE_NEW_CONSOLE;
LPVOID env_block = nullptr;
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits