[Lldb-commits] [lldb] c85bf7c - Revert "[lldb-vscode] Add inheritEnvironment option"
Walter Erquinigo via lldb-commits
lldb-commits at lists.llvm.org
Fri Mar 20 19:25:39 PDT 2020
Author: Walter Erquinigo
Date: 2020-03-20T19:24:51-07:00
New Revision: c85bf7cfa8bd0a3f2f68f57d9b49f003bbafec7f
URL: https://github.com/llvm/llvm-project/commit/c85bf7cfa8bd0a3f2f68f57d9b49f003bbafec7f
DIFF: https://github.com/llvm/llvm-project/commit/c85bf7cfa8bd0a3f2f68f57d9b49f003bbafec7f.diff
LOG: Revert "[lldb-vscode] Add inheritEnvironment option"
This reverts commit 4ec6ebabfc3ec03d3ad4d3bdf05a7292d01391b3.
Added:
Modified:
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
lldb/tools/lldb-vscode/lldb-vscode.cpp
lldb/tools/lldb-vscode/package.json
Removed:
lldb/test/API/tools/lldb-vscode/environmentVariables/Makefile
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
################################################################################
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 25b28cacefb4..54f09e2cdbee 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 e2cd25186ffa..3cdf1ee90ccb 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 99998b20bcb0..000000000000
--- 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 f19cbebe9dd5..000000000000
--- 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 968671d20c09..000000000000
--- a/lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-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 149b89bd3fe2..8c68dd0e7055 100644
--- a/lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ b/lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -40,7 +40,6 @@
#include <sstream>
#include <thread>
-#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 dd4158ffaa01..0799acfa116e 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.",
More information about the lldb-commits
mailing list