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 lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits