diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py index 25b28cacefb4f..54f09e2cdbee6 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py @@ -267,7 +267,7 @@ def launch(self, program=None, args=None, cwd=None, env=None, disableSTDIO=False, shellExpandArguments=False, trace=False, initCommands=None, preRunCommands=None, stopCommands=None, exitCommands=None,sourcePath= None, - debuggerRoot=None, launchCommands=None, inheritEnvironment=False): + debuggerRoot=None, launchCommands=None): '''Sending launch request to vscode ''' @@ -298,8 +298,7 @@ def cleanup(): exitCommands=exitCommands, sourcePath=sourcePath, debuggerRoot=debuggerRoot, - launchCommands=launchCommands, - inheritEnvironment=inheritEnvironment) + launchCommands=launchCommands) if not (response and response['success']): self.assertTrue(response['success'], 'launch failed (%s)' % (response['message'])) @@ -309,7 +308,7 @@ def build_and_launch(self, program, args=None, cwd=None, env=None, disableSTDIO=False, shellExpandArguments=False, trace=False, initCommands=None, preRunCommands=None, stopCommands=None, exitCommands=None, - sourcePath=None, debuggerRoot=None, inheritEnvironment=False): + sourcePath=None, debuggerRoot=None): '''Build the default Makefile target, create the VSCode debug adaptor, and launch the process. ''' @@ -319,4 +318,4 @@ def build_and_launch(self, program, args=None, cwd=None, env=None, self.launch(program, args, cwd, env, stopOnEntry, disableASLR, disableSTDIO, shellExpandArguments, trace, initCommands, preRunCommands, stopCommands, exitCommands, - sourcePath, debuggerRoot, inheritEnvironment=inheritEnvironment) + sourcePath, debuggerRoot) diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py index e2cd25186ffa0..3cdf1ee90ccb5 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py @@ -570,7 +570,7 @@ def request_launch(self, program, args=None, cwd=None, env=None, disableSTDIO=False, shellExpandArguments=False, trace=False, initCommands=None, preRunCommands=None, stopCommands=None, exitCommands=None, sourcePath=None, - debuggerRoot=None, launchCommands=None, inheritEnvironment=False): + debuggerRoot=None, launchCommands=None): args_dict = { 'program': program } @@ -605,8 +605,6 @@ def request_launch(self, program, args=None, cwd=None, env=None, args_dict['debuggerRoot'] = debuggerRoot if launchCommands: args_dict['launchCommands'] = launchCommands - if inheritEnvironment: - args_dict['inheritEnvironment'] = inheritEnvironment command_dict = { 'command': 'launch', 'type': 'request', @@ -914,8 +912,7 @@ def run_vscode(dbg, args, options): initCommands=options.initCmds, preRunCommands=options.preRunCmds, stopCommands=options.stopCmds, - exitCommands=options.exitCmds, - inheritEnvironment=options.inheritEnvironment) + exitCommands=options.exitCmds) if response['success']: if options.sourceBreakpoints: diff --git a/lldb/test/API/tools/lldb-vscode/environmentVariables/Makefile b/lldb/test/API/tools/lldb-vscode/environmentVariables/Makefile deleted file mode 100644 index 99998b20bcb05..0000000000000 --- a/lldb/test/API/tools/lldb-vscode/environmentVariables/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -CXX_SOURCES := main.cpp - -include Makefile.rules diff --git a/lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py b/lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py deleted file mode 100644 index f19cbebe9dd55..0000000000000 --- a/lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py +++ /dev/null @@ -1,107 +0,0 @@ -""" -Test lldb-vscode environment variables -""" - - -import lldbvscode_testcase -import unittest2 -import vscode -import os -from lldbsuite.test import lldbutil -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * - -class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase): - - mydir = TestBase.compute_mydir(__file__) - - def getEnvOutputByProgram(self): - env = {} - for line in self.get_stdout().encode('utf-8').splitlines(): - (name, value) = line.split("=") - env[name] = value - return env - - @skipIfWindows - @skipIfRemote - def test_empty_environment(self): - """ - Tests running a process with an empty environment - """ - program = self.getBuildArtifact("a.out") - self.build_and_launch(program) - self.continue_to_exit() - env = self.getEnvOutputByProgram() - - self.assertNotIn("PATH", env) - - @skipIfWindows - @skipIfRemote - def test_inheriting_environment(self): - """ - Tests running a process inheriting the environment - """ - program = self.getBuildArtifact("a.out") - self.build_and_launch(program, inheritEnvironment=True, env=["FOO=bar"]) - self.continue_to_exit() - env = self.getEnvOutputByProgram() - - self.assertEqual(env["PATH"], os.environ['PATH']) - self.assertEqual(env["FOO"], "bar") - - @skipIfWindows - @skipIfRemote - def test_override_when_inheriting_environment(self): - """ - Tests the environment variables priority. - The launch.json's environment has precedence. - """ - program = self.getBuildArtifact("a.out") - new_path_value = "#" + os.environ["PATH"] - - self.build_and_launch( - program, - inheritEnvironment=True, - env=["PATH=" + new_path_value]) - self.continue_to_exit() - env = self.getEnvOutputByProgram() - - self.assertEqual(env["PATH"], new_path_value) - - @skipIfWindows - @skipIfRemote - def test_empty_environment_custom_launcher(self): - """ - Tests running a process with an empty environment from a custom - launcher - """ - program = self.getBuildArtifact("a.out") - self.build_and_create_debug_adaptor() - - launchCommands = [ - 'target create "%s"' % (program), - "run" - ] - self.launch(launchCommands=launchCommands) - self.continue_to_exit() - env = self.getEnvOutputByProgram() - self.assertNotIn("PATH", env) - - @skipIfWindows - @skipIfRemote - def test_inheriting_environment_custom_launcher(self): - """ - Tests running a process from a custom launcher inheriting the - environment - """ - program = self.getBuildArtifact("a.out") - self.build_and_create_debug_adaptor() - - launchCommands = [ - 'target create "%s"' % (program), - "run" - ] - self.launch(launchCommands=launchCommands, inheritEnvironment=True) - self.continue_to_exit() - env = self.getEnvOutputByProgram() - self.assertIn("PATH", env) diff --git a/lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp b/lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp deleted file mode 100644 index 968671d20c093..0000000000000 --- a/lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include -#include - -extern char **environ; - -int main(int argc, char const *argv[]) { - char **env_var_pointer = environ; - for (char *env_variable = *env_var_pointer; env_variable; - env_variable = *++env_var_pointer) { - printf("%s\n", env_variable); - } - return 0; -} diff --git a/lldb/tools/lldb-vscode/lldb-vscode.cpp b/lldb/tools/lldb-vscode/lldb-vscode.cpp index 149b89bd3fe29..8c68dd0e70554 100644 --- a/lldb/tools/lldb-vscode/lldb-vscode.cpp +++ b/lldb/tools/lldb-vscode/lldb-vscode.cpp @@ -40,7 +40,6 @@ #include #include -#include "lldb/API/SBEnvironment.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/Option/Arg.h" #include "llvm/Option/ArgList.h" @@ -1356,8 +1355,6 @@ void request_launch(const llvm::json::Object &request) { auto launchCommands = GetStrings(arguments, "launchCommands"); g_vsc.stop_at_entry = GetBoolean(arguments, "stopOnEntry", false); const auto debuggerRoot = GetString(arguments, "debuggerRoot"); - bool launchWithDebuggerEnvironment = - GetBoolean(arguments, "inheritEnvironment", false); // This is a hack for loading DWARF in .o files on Mac where the .o files // in the debug map of the main executable have relative paths which require @@ -1374,13 +1371,6 @@ void request_launch(const llvm::json::Object &request) { // the targets - preRunCommands are run with the target. g_vsc.RunInitCommands(); - // Reset the default value of the inherit environment setting, so that the - // environment of programs launched by launchCommands is consistent with the - // "inheritEnvironment" argument. - if (!launchWithDebuggerEnvironment) - g_vsc.RunLLDBCommands(llvm::StringRef(), - {"settings set target.inherit-env false"}); - lldb::SBError status; g_vsc.SetTarget(g_vsc.CreateTargetFromArguments(*arguments, status)); if (status.Fail()) { @@ -1405,12 +1395,10 @@ void request_launch(const llvm::json::Object &request) { if (!args.empty()) g_vsc.launch_info.SetArguments(MakeArgv(args).data(), true); - // This mimics what CommandObjectProcess does when launching a process - lldb::SBEnvironment env = g_vsc.target.GetEnvironment(); - for (const auto &name_and_value : GetStrings(arguments, "env")) - env.PutEntry(name_and_value.c_str()); - - g_vsc.launch_info.SetEnvironment(env, true); + // Pass any environment variables along that the user specified. + auto envs = GetStrings(arguments, "env"); + if (!envs.empty()) + g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true); auto flags = g_vsc.launch_info.GetLaunchFlags(); diff --git a/lldb/tools/lldb-vscode/package.json b/lldb/tools/lldb-vscode/package.json index dd4158ffaa016..0799acfa116e1 100644 --- a/lldb/tools/lldb-vscode/package.json +++ b/lldb/tools/lldb-vscode/package.json @@ -84,11 +84,6 @@ "description": "Additional environment variables.", "default": [] }, - "inheritEnvironment": { - "type": "boolean", - "description": "Inherit the debugger environment when launching a process. Only works for binaries launched directly by LLDB.", - "default": false - }, "stopOnEntry": { "type": "boolean", "description": "Automatically stop after launch.",