[Lldb-commits] [PATCH] D74579: Creating environment variable test for lldbd

2020-02-13 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244531.
diazhector98 added a comment.

Creating env tes


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74579/new/

https://reviews.llvm.org/D74579

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/Makefile
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/main.cpp
  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

Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -1402,10 +1402,11 @@
   // if arguments has launchWithDebuggerEnvironment
   // then append current environment to g_vsc.launch_info
   if (launchWithDebuggerEnvironment) {
+  // if (true) {
 char** env_var_pointer = environ;
 std::vector vscode_env_variables;
-for (char* c = *env_var_pointer; c; c=*++env_var_pointer){
-  vscode_env_variables.push_back(c);
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
 }
 envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
   } 
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -562,7 +562,7 @@
disableSTDIO=False, shellExpandArguments=False,
trace=False, initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None, sourcePath=None,
-   debuggerRoot=None, launchCommands=None):
+   debuggerRoot=None, launchCommands=None, inheritEnvironment=False):
 args_dict = {
 'program': program
 }
@@ -597,6 +597,8 @@
 args_dict['debuggerRoot'] = debuggerRoot
 if launchCommands:
 args_dict['launchCommands'] = launchCommands
+if inheritEnvironment:
+args_dict['inheritEnvironment'] = inheritEnvironment
 command_dict = {
 'command': 'launch',
 'type': 'request',
@@ -891,6 +893,7 @@
   stopCommands=options.stopCmds,
   exitCommands=options.exitCmds)
 else:
+print('Options.Envs: ', options.envs)
 response = dbg.request_launch(options.program,
   args=args,
   env=options.envs,
@@ -929,6 +932,7 @@
 
 
 def main():
+print("Hello This Is Main")
 parser = optparse.OptionParser(
 description=('A testing framework for the Visual Studio Code Debug '
  'Adaptor protocol'))
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
@@ -265,7 +265,7 @@
disableSTDIO=False, shellExpandArguments=False,
trace=False, initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None,sourcePath= None,
-   debuggerRoot=None, launchCommands=None):
+   debuggerRoot=None, launchCommands=None, inheritEnvironment=False):
 '''Sending launch request to vscode
 '''
 
@@ -296,7 +296,9 @@
 exitCommands=exitCommands,
 sourcePath=sourcePath,
 debuggerRoot=debuggerRoot,
-launchCommands=launchCommands)
+launchCommands=launchCommands,
+inheritEnvironment=inheritEnvironment
+)
 if not (response and response['success']):
 self.assertTrue(response['success'],
 'launch failed (%s)' % (response['message']))
@@ -306,14 +308,13 @@
  disableSTDIO=False, shellExpandArguments=False,
  trace=False, initCommands=None, preRunCommands=None,
  stopCommands=None, exitCommands=None,
- sourcePath=None, debuggerRoot=None):
+ sourcePath=None, debuggerRoot=None, inheritEnvironment=False):
 '''Build the default Makefile 

[Lldb-commits] [PATCH] D74579: Creating environment variable test for lldbd

2020-02-13 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 created this revision.
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.

Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D74579

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/Makefile
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/main.cpp
  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

Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -1402,10 +1402,11 @@
   // if arguments has launchWithDebuggerEnvironment
   // then append current environment to g_vsc.launch_info
   if (launchWithDebuggerEnvironment) {
+  // if (true) {
 char** env_var_pointer = environ;
 std::vector vscode_env_variables;
-for (char* c = *env_var_pointer; c; c=*++env_var_pointer){
-  vscode_env_variables.push_back(c);
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
 }
 envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
   } 
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -562,7 +562,7 @@
disableSTDIO=False, shellExpandArguments=False,
trace=False, initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None, sourcePath=None,
-   debuggerRoot=None, launchCommands=None):
+   debuggerRoot=None, launchCommands=None, inheritEnvironment=False):
 args_dict = {
 'program': program
 }
@@ -597,6 +597,8 @@
 args_dict['debuggerRoot'] = debuggerRoot
 if launchCommands:
 args_dict['launchCommands'] = launchCommands
+if inheritEnvironment:
+args_dict['inheritEnvironment'] = inheritEnvironment
 command_dict = {
 'command': 'launch',
 'type': 'request',
@@ -891,6 +893,7 @@
   stopCommands=options.stopCmds,
   exitCommands=options.exitCmds)
 else:
+print('Options.Envs: ', options.envs)
 response = dbg.request_launch(options.program,
   args=args,
   env=options.envs,
@@ -929,6 +932,7 @@
 
 
 def main():
+print("Hello This Is Main")
 parser = optparse.OptionParser(
 description=('A testing framework for the Visual Studio Code Debug '
  'Adaptor protocol'))
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
@@ -265,7 +265,7 @@
disableSTDIO=False, shellExpandArguments=False,
trace=False, initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None,sourcePath= None,
-   debuggerRoot=None, launchCommands=None):
+   debuggerRoot=None, launchCommands=None, inheritEnvironment=False):
 '''Sending launch request to vscode
 '''
 
@@ -296,7 +296,9 @@
 exitCommands=exitCommands,
 sourcePath=sourcePath,
 debuggerRoot=debuggerRoot,
-launchCommands=launchCommands)
+launchCommands=launchCommands,
+inheritEnvironment=inheritEnvironment
+)
 if not (response and response['success']):
 self.assertTrue(response['success'],
 'launch failed (%s)' % (response['message']))
@@ -306,14 +308,13 @@
  disableSTDIO=False, shellExpandArguments=False,
  trace=False, initCommands=None, preRunCommands=None,
  stopCommands=None, exitCommands=None,
- sourcePath=None, debuggerRoot=None):
+ sourcePath=None, debuggerRoot=None, inheritEnvironment=False):
 '''Build the default Makefile target, create the VSCode debug adaptor,
and 

[Lldb-commits] [PATCH] D73506: Bug fix

2020-01-27 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 240694.
diazhector98 added a comment.



1. Updating D73506 : Bug fix #
2. Enter a brief description of the changes included in this update.
3. The first line is used as subject, next lines as comment. #
4. If you intended to create a new revision, use:
5. $ arc diff --create

Brackets syntax


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73506/new/

https://reviews.llvm.org/D73506

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp


Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -951,9 +951,27 @@
   for (size_t i = 0; i < count; i++) {
 std::string match = matches.GetStringAtIndex(i);
 std::string description = descriptions.GetStringAtIndex(i);
-
+
 llvm::json::Object item;
-EmplaceSafeString(item, "text", match);
+
+std::vector commit_points = {".", "->"};
+int max_breakpoint_position = -1;
+int commit_points_index = -1;
+for (uint32_t breakpoint_index = 0; breakpoint_index < 
commit_points.size(); breakpoint_index++) {
+  int breakpoint_position = match.rfind(commit_points[breakpoint_index]);
+  if (max_breakpoint_position < breakpoint_position){
+commit_points_index = breakpoint_index;
+max_breakpoint_position = breakpoint_position;
+  }
+}
+
+if (max_breakpoint_position != -1) {
+  std::string cut_match = match.substr(max_breakpoint_position + 
commit_points[commit_points_index].length(), match.length() - 
max_breakpoint_position);
+  EmplaceSafeString(item, "text", cut_match);
+} else {
+  EmplaceSafeString(item, "text", match);
+}
+
 if (description.empty())
   EmplaceSafeString(item, "label", match);
 else
Index: 
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
@@ -1,6 +1,17 @@
 #include 
 #include 
 
+struct bar {
+  int var1;
+};
+
+struct foo {
+  int var1;
+  bar* my_bar_pointer;
+  bar my_bar_object;
+  foo* next_foo;
+};
+
 int fun(std::vector var) {
   return var.size(); // breakpoint 1
 }
@@ -12,5 +23,8 @@
   std::string str2 = "b";
   std::vector vec;
   fun(vec);
+  bar bar1 = {2};
+  bar* bar2 =  
+  foo foo1 = {3,, bar1, NULL};
   return 0; // breakpoint 2
 }
Index: 
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
===
--- 
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
+++ 
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
@@ -113,3 +113,23 @@
 }
 ],
 )
+
+self.verify_completions(
+self.vscode.get_completions("foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.my_bar_object.v"),
+[
+{
+"text": "var1",
+"label": "foo1.my_bar_object.var1 -- int"
+}
+]
+)


Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -951,9 +951,27 @@
   for (size_t i = 0; i < count; i++) {
 std::string match = matches.GetStringAtIndex(i);
 std::string description = descriptions.GetStringAtIndex(i);
-
+
 llvm::json::Object item;
-EmplaceSafeString(item, "text", match);
+
+std::vector commit_points = {".", "->"};
+int max_breakpoint_position = -1;
+int commit_points_index = -1;
+for (uint32_t breakpoint_index = 0; breakpoint_index < commit_points.size(); breakpoint_index++) {
+  int breakpoint_position = match.rfind(commit_points[breakpoint_index]);
+  if (max_breakpoint_position < breakpoint_position){
+commit_points_index = breakpoint_index;
+max_breakpoint_position = breakpoint_position;
+  }
+}
+
+if (max_breakpoint_position != -1) {
+  std::string cut_match = match.substr(max_breakpoint_position + commit_points[commit_points_index].length(), match.length() - max_breakpoint_position);
+  EmplaceSafeString(item, "text", cut_match);
+} else 

[Lldb-commits] [PATCH] D73506: Bug fix

2020-01-27 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 created this revision.
diazhector98 added a reviewer: wallace.
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.
diazhector98 planned changes to this revision.
diazhector98 marked 5 inline comments as done.
diazhector98 added inline comments.



Comment at: 
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py:122
+self.verify_completions(
+self.vscode.get_completions("foo1.v"),
+[

also test this

foo.var1 + var2

foo.var1 + va
  var2
  var1



Comment at: lldb/tools/lldb-vscode/lldb-vscode.cpp:956
+
+std::vector breakpoints = {".", "->"};
+int max_breakpoint_position = -1;

commit_points



Comment at: lldb/tools/lldb-vscode/lldb-vscode.cpp:958
+int max_breakpoint_position = -1;
+std::string breakpoint_string = "";
+for (std::string breakpoint : breakpoints){

int breakpoint_index = -1



Comment at: lldb/tools/lldb-vscode/lldb-vscode.cpp:959
+std::string breakpoint_string = "";
+for (std::string breakpoint : breakpoints){
+  int breakpoint_position = match.rfind(breakpoint);

space before {



Comment at: lldb/tools/lldb-vscode/lldb-vscode.cpp:966
+}
+if (max_breakpoint_position != -1){
+  std::string cut_match = match.substr(max_breakpoint_position + 
breakpoint_string.length(), match.length() - max_breakpoint_position);

space before {




TODO


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D73506

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  lldb/tools/lldb-vscode/lldb-vscode.cpp

Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -951,9 +951,25 @@
   for (size_t i = 0; i < count; i++) {
 std::string match = matches.GetStringAtIndex(i);
 std::string description = descriptions.GetStringAtIndex(i);
-
 llvm::json::Object item;
-EmplaceSafeString(item, "text", match);
+
+std::vector breakpoints = {".", "->"};
+int max_breakpoint_position = -1;
+std::string breakpoint_string = "";
+for (std::string breakpoint : breakpoints){
+  int breakpoint_position = match.rfind(breakpoint);
+  if (max_breakpoint_position < breakpoint_position){
+breakpoint_string = breakpoint;
+max_breakpoint_position = breakpoint_position;
+  }
+}
+if (max_breakpoint_position != -1){
+  std::string cut_match = match.substr(max_breakpoint_position + breakpoint_string.length(), match.length() - max_breakpoint_position);
+  EmplaceSafeString(item, "text", cut_match);
+} else {
+  EmplaceSafeString(item, "text", match);
+}
+
 if (description.empty())
   EmplaceSafeString(item, "label", match);
 else
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -350,6 +350,8 @@
 
 def get_completions(self, text):
 response = self.request_completions(text)
+print(response['body']['targets'])
+print("==")
 return response['body']['targets']
 
 def get_scope_variables(self, scope_name, frameIndex=0, threadId=None):
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
@@ -1,6 +1,17 @@
 #include 
 #include 
 
+struct bar {
+  int var1;
+};
+
+struct foo {
+  int var1;
+  bar* my_bar_pointer;
+  bar my_bar_object;
+  foo* next_foo;
+};
+
 int fun(std::vector var) {
   return var.size(); // breakpoint 1
 }
@@ -12,5 +23,8 @@
   std::string str2 = "b";
   std::vector vec;
   fun(vec);
+  bar bar1 = {2};
+  bar* bar2 =  
+  foo foo1 = {3,, bar1, NULL};
   return 0; // breakpoint 2
 }
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
@@ -16,6 +16,10 @@
 mydir = TestBase.compute_mydir(__file__)
 
 def verify_completions(self, actual_list, expected_list, 

[Lldb-commits] [PATCH] D73506: Bug fix

2020-01-27 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 240700.
diazhector98 added a comment.

Added more tests


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73506/new/

https://reviews.llvm.org/D73506

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp

Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -951,9 +951,27 @@
   for (size_t i = 0; i < count; i++) {
 std::string match = matches.GetStringAtIndex(i);
 std::string description = descriptions.GetStringAtIndex(i);
-
+
 llvm::json::Object item;
-EmplaceSafeString(item, "text", match);
+
+std::vector commit_points = {".", "->"};
+int max_breakpoint_position = -1;
+int commit_points_index = -1;
+for (uint32_t breakpoint_index = 0; breakpoint_index < commit_points.size(); breakpoint_index++) {
+  int breakpoint_position = match.rfind(commit_points[breakpoint_index]);
+  if (max_breakpoint_position < breakpoint_position){
+commit_points_index = breakpoint_index;
+max_breakpoint_position = breakpoint_position;
+  }
+}
+
+if (max_breakpoint_position != -1) {
+  std::string cut_match = match.substr(max_breakpoint_position + commit_points[commit_points_index].length(), match.length() - max_breakpoint_position);
+  EmplaceSafeString(item, "text", cut_match);
+} else {
+  EmplaceSafeString(item, "text", match);
+}
+
 if (description.empty())
   EmplaceSafeString(item, "label", match);
 else
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
@@ -1,6 +1,17 @@
 #include 
 #include 
 
+struct bar {
+  int var1;
+};
+
+struct foo {
+  int var1;
+  bar* my_bar_pointer;
+  bar my_bar_object;
+  foo* next_foo;
+};
+
 int fun(std::vector var) {
   return var.size(); // breakpoint 1
 }
@@ -12,5 +23,8 @@
   std::string str2 = "b";
   std::vector vec;
   fun(vec);
+  bar bar1 = {2};
+  bar* bar2 =  
+  foo foo1 = {3,, bar1, NULL};
   return 0; // breakpoint 2
 }
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
@@ -23,7 +23,7 @@
 self.assertFalse(not_expected_item in actual_list)
 
 @skipIfWindows
-@skipIfDarwin # Skip this test for now until we can figure out why tings aren't working on build bots
+#@skipIfDarwin # Skip this test for now until we can figure out why tings aren't working on build bots
 def test_completions(self):
 """
 Tests the completion request at different breakpoints
@@ -113,3 +113,43 @@
 }
 ],
 )
+
+self.verify_completions(
+self.vscode.get_completions("foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.my_bar_object.v"),
+[
+{
+"text": "var1",
+"label": "foo1.my_bar_object.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.var1 + foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.var1 + v"),
+[
+{
+"text": "var1",
+"label": "var1 -- int &"
+}
+]
+)
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D73506: Bug fix

2020-01-27 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 planned changes to this revision.
diazhector98 marked 5 inline comments as done.
diazhector98 added inline comments.



Comment at: 
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py:122
+self.verify_completions(
+self.vscode.get_completions("foo1.v"),
+[

also test this

foo.var1 + var2

foo.var1 + va
  var2
  var1



Comment at: lldb/tools/lldb-vscode/lldb-vscode.cpp:956
+
+std::vector breakpoints = {".", "->"};
+int max_breakpoint_position = -1;

commit_points



Comment at: lldb/tools/lldb-vscode/lldb-vscode.cpp:958
+int max_breakpoint_position = -1;
+std::string breakpoint_string = "";
+for (std::string breakpoint : breakpoints){

int breakpoint_index = -1



Comment at: lldb/tools/lldb-vscode/lldb-vscode.cpp:959
+std::string breakpoint_string = "";
+for (std::string breakpoint : breakpoints){
+  int breakpoint_position = match.rfind(breakpoint);

space before {



Comment at: lldb/tools/lldb-vscode/lldb-vscode.cpp:966
+}
+if (max_breakpoint_position != -1){
+  std::string cut_match = match.substr(max_breakpoint_position + 
breakpoint_string.length(), match.length() - max_breakpoint_position);

space before {




Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73506/new/

https://reviews.llvm.org/D73506



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D73506: Bug fix

2020-01-27 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 240693.
diazhector98 added a comment.



1. Updating D73506 : Bug fix #
2. Enter a brief description of the changes included in this update.
3. The first line is used as subject, next lines as comment. #
4. If you intended to create a new revision, use:
5. $ arc diff --create

Replaced storing breakpoint string with its index
.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73506/new/

https://reviews.llvm.org/D73506

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp


Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -951,9 +951,27 @@
   for (size_t i = 0; i < count; i++) {
 std::string match = matches.GetStringAtIndex(i);
 std::string description = descriptions.GetStringAtIndex(i);
-
+
 llvm::json::Object item;
-EmplaceSafeString(item, "text", match);
+
+std::vector commit_points = {".", "->"};
+int max_breakpoint_position = -1;
+int commit_points_index = -1;
+for (uint32_t breakpoint_index = 0; breakpoint_index < 
commit_points.size(); breakpoint_index++){
+  int breakpoint_position = match.rfind(commit_points[breakpoint_index]);
+  if (max_breakpoint_position < breakpoint_position){
+commit_points_index = breakpoint_index;
+max_breakpoint_position = breakpoint_position;
+  }
+}
+
+if (max_breakpoint_position != -1) {
+  std::string cut_match = match.substr(max_breakpoint_position + 
commit_points[commit_points_index].length(), match.length() - 
max_breakpoint_position);
+  EmplaceSafeString(item, "text", cut_match);
+} else {
+  EmplaceSafeString(item, "text", match);
+}
+
 if (description.empty())
   EmplaceSafeString(item, "label", match);
 else
Index: 
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
@@ -1,6 +1,17 @@
 #include 
 #include 
 
+struct bar {
+  int var1;
+};
+
+struct foo {
+  int var1;
+  bar* my_bar_pointer;
+  bar my_bar_object;
+  foo* next_foo;
+};
+
 int fun(std::vector var) {
   return var.size(); // breakpoint 1
 }
@@ -12,5 +23,8 @@
   std::string str2 = "b";
   std::vector vec;
   fun(vec);
+  bar bar1 = {2};
+  bar* bar2 =  
+  foo foo1 = {3,, bar1, NULL};
   return 0; // breakpoint 2
 }
Index: 
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
===
--- 
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
+++ 
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
@@ -113,3 +113,23 @@
 }
 ],
 )
+
+self.verify_completions(
+self.vscode.get_completions("foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.my_bar_object.v"),
+[
+{
+"text": "var1",
+"label": "foo1.my_bar_object.var1 -- int"
+}
+]
+)


Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -951,9 +951,27 @@
   for (size_t i = 0; i < count; i++) {
 std::string match = matches.GetStringAtIndex(i);
 std::string description = descriptions.GetStringAtIndex(i);
-
+
 llvm::json::Object item;
-EmplaceSafeString(item, "text", match);
+
+std::vector commit_points = {".", "->"};
+int max_breakpoint_position = -1;
+int commit_points_index = -1;
+for (uint32_t breakpoint_index = 0; breakpoint_index < commit_points.size(); breakpoint_index++){
+  int breakpoint_position = match.rfind(commit_points[breakpoint_index]);
+  if (max_breakpoint_position < breakpoint_position){
+commit_points_index = breakpoint_index;
+max_breakpoint_position = breakpoint_position;
+  }
+}
+
+if (max_breakpoint_position != -1) {
+  std::string cut_match = match.substr(max_breakpoint_position + commit_points[commit_points_index].length(), match.length() - max_breakpoint_position);
+  

[Lldb-commits] [PATCH] D73506: Auto-completion bug fix for dot operator

2020-01-27 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 240715.
diazhector98 edited the summary of this revision.
diazhector98 added a comment.

int32 to int


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73506/new/

https://reviews.llvm.org/D73506

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp

Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -951,9 +951,27 @@
   for (size_t i = 0; i < count; i++) {
 std::string match = matches.GetStringAtIndex(i);
 std::string description = descriptions.GetStringAtIndex(i);
-
+
 llvm::json::Object item;
-EmplaceSafeString(item, "text", match);
+
+std::vector commit_points = {".", "->"};
+int max_breakpoint_position = -1;
+int commit_points_index = -1;
+for (int breakpoint_index = 0; breakpoint_index < commit_points.size(); breakpoint_index++) {
+  int breakpoint_position = match.rfind(commit_points[breakpoint_index]);
+  if (max_breakpoint_position < breakpoint_position){
+commit_points_index = breakpoint_index;
+max_breakpoint_position = breakpoint_position;
+  }
+}
+
+if (max_breakpoint_position != -1) {
+  std::string cut_match = match.substr(max_breakpoint_position + commit_points[commit_points_index].length(), match.length() - max_breakpoint_position);
+  EmplaceSafeString(item, "text", cut_match);
+} else {
+  EmplaceSafeString(item, "text", match);
+}
+
 if (description.empty())
   EmplaceSafeString(item, "label", match);
 else
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
@@ -1,6 +1,17 @@
 #include 
 #include 
 
+struct bar {
+  int var1;
+};
+
+struct foo {
+  int var1;
+  bar* my_bar_pointer;
+  bar my_bar_object;
+  foo* next_foo;
+};
+
 int fun(std::vector var) {
   return var.size(); // breakpoint 1
 }
@@ -12,5 +23,8 @@
   std::string str2 = "b";
   std::vector vec;
   fun(vec);
+  bar bar1 = {2};
+  bar* bar2 =  
+  foo foo1 = {3,, bar1, NULL};
   return 0; // breakpoint 2
 }
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
@@ -113,3 +113,43 @@
 }
 ],
 )
+
+self.verify_completions(
+self.vscode.get_completions("foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.my_bar_object.v"),
+[
+{
+"text": "var1",
+"label": "foo1.my_bar_object.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.var1 + foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.var1 + v"),
+[
+{
+"text": "var1",
+"label": "var1 -- int &"
+}
+]
+)
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D73506: Auto-completion bug fix for dot operator

2020-01-27 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 240717.
diazhector98 marked an inline comment as done.
diazhector98 added a comment.

changed int to size_t to avoid warning


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73506/new/

https://reviews.llvm.org/D73506

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp

Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -951,9 +951,27 @@
   for (size_t i = 0; i < count; i++) {
 std::string match = matches.GetStringAtIndex(i);
 std::string description = descriptions.GetStringAtIndex(i);
-
+
 llvm::json::Object item;
-EmplaceSafeString(item, "text", match);
+
+std::vector commit_points = {".", "->"};
+int max_breakpoint_position = -1;
+int commit_points_index = -1;
+for (size_t breakpoint_index = 0; breakpoint_index < commit_points.size(); breakpoint_index++) {
+  int breakpoint_position = match.rfind(commit_points[breakpoint_index]);
+  if (max_breakpoint_position < breakpoint_position){
+commit_points_index = breakpoint_index;
+max_breakpoint_position = breakpoint_position;
+  }
+}
+
+if (max_breakpoint_position != -1) {
+  std::string cut_match = match.substr(max_breakpoint_position + commit_points[commit_points_index].length(), match.length() - max_breakpoint_position);
+  EmplaceSafeString(item, "text", cut_match);
+} else {
+  EmplaceSafeString(item, "text", match);
+}
+
 if (description.empty())
   EmplaceSafeString(item, "label", match);
 else
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
@@ -1,6 +1,17 @@
 #include 
 #include 
 
+struct bar {
+  int var1;
+};
+
+struct foo {
+  int var1;
+  bar* my_bar_pointer;
+  bar my_bar_object;
+  foo* next_foo;
+};
+
 int fun(std::vector var) {
   return var.size(); // breakpoint 1
 }
@@ -12,5 +23,8 @@
   std::string str2 = "b";
   std::vector vec;
   fun(vec);
+  bar bar1 = {2};
+  bar* bar2 =  
+  foo foo1 = {3,, bar1, NULL};
   return 0; // breakpoint 2
 }
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
@@ -113,3 +113,43 @@
 }
 ],
 )
+
+self.verify_completions(
+self.vscode.get_completions("foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.my_bar_object.v"),
+[
+{
+"text": "var1",
+"label": "foo1.my_bar_object.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.var1 + foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.var1 + v"),
+[
+{
+"text": "var1",
+"label": "var1 -- int &"
+}
+]
+)
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D73506: Bug fix

2020-01-27 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 240683.
diazhector98 added a comment.



1. Updating D73506 : Bug fix #
2. Enter a brief description of the changes included in this update.
3. The first line is used as subject, next lines as comment. #
4. If you intended to create a new revision, use:
5. $ arc diff --create

Removed print statements

As title


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73506/new/

https://reviews.llvm.org/D73506

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  lldb/tools/lldb-vscode/lldb-vscode.cpp

Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -951,9 +951,25 @@
   for (size_t i = 0; i < count; i++) {
 std::string match = matches.GetStringAtIndex(i);
 std::string description = descriptions.GetStringAtIndex(i);
-
 llvm::json::Object item;
-EmplaceSafeString(item, "text", match);
+
+std::vector breakpoints = {".", "->"};
+int max_breakpoint_position = -1;
+std::string breakpoint_string = "";
+for (std::string breakpoint : breakpoints){
+  int breakpoint_position = match.rfind(breakpoint);
+  if (max_breakpoint_position < breakpoint_position){
+breakpoint_string = breakpoint;
+max_breakpoint_position = breakpoint_position;
+  }
+}
+if (max_breakpoint_position != -1){
+  std::string cut_match = match.substr(max_breakpoint_position + breakpoint_string.length(), match.length() - max_breakpoint_position);
+  EmplaceSafeString(item, "text", cut_match);
+} else {
+  EmplaceSafeString(item, "text", match);
+}
+
 if (description.empty())
   EmplaceSafeString(item, "label", match);
 else
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -350,6 +350,8 @@
 
 def get_completions(self, text):
 response = self.request_completions(text)
+print(response['body']['targets'])
+print("==")
 return response['body']['targets']
 
 def get_scope_variables(self, scope_name, frameIndex=0, threadId=None):
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
@@ -1,6 +1,17 @@
 #include 
 #include 
 
+struct bar {
+  int var1;
+};
+
+struct foo {
+  int var1;
+  bar* my_bar_pointer;
+  bar my_bar_object;
+  foo* next_foo;
+};
+
 int fun(std::vector var) {
   return var.size(); // breakpoint 1
 }
@@ -12,5 +23,8 @@
   std::string str2 = "b";
   std::vector vec;
   fun(vec);
+  bar bar1 = {2};
+  bar* bar2 =  
+  foo foo1 = {3,, bar1, NULL};
   return 0; // breakpoint 2
 }
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
@@ -23,7 +23,7 @@
 self.assertFalse(not_expected_item in actual_list)
 
 @skipIfWindows
-@skipIfDarwin # Skip this test for now until we can figure out why tings aren't working on build bots
+#@skipIfDarwin # Skip this test for now until we can figure out why tings aren't working on build bots
 def test_completions(self):
 """
 Tests the completion request at different breakpoints
@@ -113,3 +113,23 @@
 }
 ],
 )
+
+self.verify_completions(
+self.vscode.get_completions("foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.my_bar_object->v"),
+[
+{
+"text": "var1",
+"label": "foo1.my_bar_object.var1 -- int"
+}
+]
+)
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D73506: Bug fix

2020-01-27 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 240687.
diazhector98 added a comment.



1. Updating D73506 : Bug fix #
2. Enter a brief description of the changes included in this update.
3. The first line is used as subject, next lines as comment. #
4. If you intended to create a new revision, use:
5. $ arc diff --create

Syntax fixes and uncommenting @darwin

As title


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73506/new/

https://reviews.llvm.org/D73506

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp


Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -951,9 +951,26 @@
   for (size_t i = 0; i < count; i++) {
 std::string match = matches.GetStringAtIndex(i);
 std::string description = descriptions.GetStringAtIndex(i);
-
+
 llvm::json::Object item;
-EmplaceSafeString(item, "text", match);
+
+std::vector commit_points = {".", "->"};
+int breakpoint_index = -1;
+std::string breakpoint_string = "";
+for (std::string breakpoint : breakpoints) {
+  int breakpoint_position = match.rfind(breakpoint);
+  if (max_breakpoint_position < breakpoint_position){
+breakpoint_string = breakpoint;
+max_breakpoint_position = breakpoint_position;
+  }
+}
+if (max_breakpoint_position != -1) {
+  std::string cut_match = match.substr(max_breakpoint_position + 
breakpoint_string.length(), match.length() - max_breakpoint_position);
+  EmplaceSafeString(item, "text", cut_match);
+} else {
+  EmplaceSafeString(item, "text", match);
+}
+
 if (description.empty())
   EmplaceSafeString(item, "label", match);
 else
Index: 
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
@@ -1,6 +1,17 @@
 #include 
 #include 
 
+struct bar {
+  int var1;
+};
+
+struct foo {
+  int var1;
+  bar* my_bar_pointer;
+  bar my_bar_object;
+  foo* next_foo;
+};
+
 int fun(std::vector var) {
   return var.size(); // breakpoint 1
 }
@@ -12,5 +23,8 @@
   std::string str2 = "b";
   std::vector vec;
   fun(vec);
+  bar bar1 = {2};
+  bar* bar2 =  
+  foo foo1 = {3,, bar1, NULL};
   return 0; // breakpoint 2
 }
Index: 
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
===
--- 
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
+++ 
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
@@ -113,3 +113,23 @@
 }
 ],
 )
+
+self.verify_completions(
+self.vscode.get_completions("foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.my_bar_object->v"),
+[
+{
+"text": "var1",
+"label": "foo1.my_bar_object.var1 -- int"
+}
+]
+)


Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -951,9 +951,26 @@
   for (size_t i = 0; i < count; i++) {
 std::string match = matches.GetStringAtIndex(i);
 std::string description = descriptions.GetStringAtIndex(i);
-
+
 llvm::json::Object item;
-EmplaceSafeString(item, "text", match);
+
+std::vector commit_points = {".", "->"};
+int breakpoint_index = -1;
+std::string breakpoint_string = "";
+for (std::string breakpoint : breakpoints) {
+  int breakpoint_position = match.rfind(breakpoint);
+  if (max_breakpoint_position < breakpoint_position){
+breakpoint_string = breakpoint;
+max_breakpoint_position = breakpoint_position;
+  }
+}
+if (max_breakpoint_position != -1) {
+  std::string cut_match = match.substr(max_breakpoint_position + breakpoint_string.length(), match.length() - max_breakpoint_position);
+  EmplaceSafeString(item, "text", cut_match);
+} else {
+  EmplaceSafeString(item, "text", match);
+}
+
 if (description.empty())
   EmplaceSafeString(item, "label", match);
 else
Index: 

[Lldb-commits] [PATCH] D73506: Bug fix

2020-01-27 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 240701.
diazhector98 added a comment.

Uncomment @skipIfDarwin


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73506/new/

https://reviews.llvm.org/D73506

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp

Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -951,9 +951,27 @@
   for (size_t i = 0; i < count; i++) {
 std::string match = matches.GetStringAtIndex(i);
 std::string description = descriptions.GetStringAtIndex(i);
-
+
 llvm::json::Object item;
-EmplaceSafeString(item, "text", match);
+
+std::vector commit_points = {".", "->"};
+int max_breakpoint_position = -1;
+int commit_points_index = -1;
+for (uint32_t breakpoint_index = 0; breakpoint_index < commit_points.size(); breakpoint_index++) {
+  int breakpoint_position = match.rfind(commit_points[breakpoint_index]);
+  if (max_breakpoint_position < breakpoint_position){
+commit_points_index = breakpoint_index;
+max_breakpoint_position = breakpoint_position;
+  }
+}
+
+if (max_breakpoint_position != -1) {
+  std::string cut_match = match.substr(max_breakpoint_position + commit_points[commit_points_index].length(), match.length() - max_breakpoint_position);
+  EmplaceSafeString(item, "text", cut_match);
+} else {
+  EmplaceSafeString(item, "text", match);
+}
+
 if (description.empty())
   EmplaceSafeString(item, "label", match);
 else
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
@@ -1,6 +1,17 @@
 #include 
 #include 
 
+struct bar {
+  int var1;
+};
+
+struct foo {
+  int var1;
+  bar* my_bar_pointer;
+  bar my_bar_object;
+  foo* next_foo;
+};
+
 int fun(std::vector var) {
   return var.size(); // breakpoint 1
 }
@@ -12,5 +23,8 @@
   std::string str2 = "b";
   std::vector vec;
   fun(vec);
+  bar bar1 = {2};
+  bar* bar2 =  
+  foo foo1 = {3,, bar1, NULL};
   return 0; // breakpoint 2
 }
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
@@ -113,3 +113,43 @@
 }
 ],
 )
+
+self.verify_completions(
+self.vscode.get_completions("foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.my_bar_object.v"),
+[
+{
+"text": "var1",
+"label": "foo1.my_bar_object.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.var1 + foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.var1 + v"),
+[
+{
+"text": "var1",
+"label": "var1 -- int &"
+}
+]
+)
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D73506: Auto-completion bug fix for dot operator

2020-01-28 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 240908.
diazhector98 added a comment.

Simplifying code


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73506/new/

https://reviews.llvm.org/D73506

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp

Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -951,9 +951,17 @@
   for (size_t i = 0; i < count; i++) {
 std::string match = matches.GetStringAtIndex(i);
 std::string description = descriptions.GetStringAtIndex(i);
-
+
 llvm::json::Object item;
-EmplaceSafeString(item, "text", match);
+
+llvm::StringRef match_ref = match;
+for(llvm::StringRef commit_point: {".", "->"}) {
+  if (match_ref.contains(commit_point)){
+match_ref = match_ref.rsplit(commit_point).second;
+  }
+}
+EmplaceSafeString(item, "text", match_ref);
+
 if (description.empty())
   EmplaceSafeString(item, "label", match);
 else
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
@@ -1,6 +1,17 @@
 #include 
 #include 
 
+struct bar {
+  int var1;
+};
+
+struct foo {
+  int var1;
+  bar* my_bar_pointer;
+  bar my_bar_object;
+  foo* next_foo;
+};
+
 int fun(std::vector var) {
   return var.size(); // breakpoint 1
 }
@@ -12,5 +23,8 @@
   std::string str2 = "b";
   std::vector vec;
   fun(vec);
+  bar bar1 = {2};
+  bar* bar2 =  
+  foo foo1 = {3,, bar1, NULL};
   return 0; // breakpoint 2
 }
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
@@ -113,3 +113,43 @@
 }
 ],
 )
+
+self.verify_completions(
+self.vscode.get_completions("foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.my_bar_object.v"),
+[
+{
+"text": "var1",
+"label": "foo1.my_bar_object.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.var1 + foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.var1 + v"),
+[
+{
+"text": "var1",
+"label": "var1 -- int &"
+}
+]
+)
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D73506: Auto-completion bug fix for dot operator

2020-01-28 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 240916.
diazhector98 marked an inline comment as done.
diazhector98 added a comment.

Added tests for spaces between member operators


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73506/new/

https://reviews.llvm.org/D73506

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp

Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -951,9 +951,17 @@
   for (size_t i = 0; i < count; i++) {
 std::string match = matches.GetStringAtIndex(i);
 std::string description = descriptions.GetStringAtIndex(i);
-
+
 llvm::json::Object item;
-EmplaceSafeString(item, "text", match);
+
+llvm::StringRef match_ref = match;
+for(llvm::StringRef commit_point: {".", "->"}) {
+  if (match_ref.contains(commit_point)){
+match_ref = match_ref.rsplit(commit_point).second;
+  }
+}
+EmplaceSafeString(item, "text", match_ref);
+
 if (description.empty())
   EmplaceSafeString(item, "label", match);
 else
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
@@ -1,6 +1,17 @@
 #include 
 #include 
 
+struct bar {
+  int var1;
+};
+
+struct foo {
+  int var1;
+  bar* my_bar_pointer;
+  bar my_bar_object;
+  foo* next_foo;
+};
+
 int fun(std::vector var) {
   return var.size(); // breakpoint 1
 }
@@ -12,5 +23,8 @@
   std::string str2 = "b";
   std::vector vec;
   fun(vec);
+  bar bar1 = {2};
+  bar* bar2 =  
+  foo foo1 = {3,, bar1, NULL};
   return 0; // breakpoint 2
 }
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
@@ -113,3 +113,76 @@
 }
 ],
 )
+
+self.verify_completions(
+self.vscode.get_completions("foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.my_bar_object.v"),
+[
+{
+"text": "var1",
+"label": "foo1.my_bar_object.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.var1 + foo1.v"),
+[
+{
+"text": "var1",
+"label": "foo1.var1 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1.var1 + v"),
+[
+{
+"text": "var1",
+"label": "var1 -- int &"
+}
+]
+)
+
+#should correctly handle spaces between objects and member operators
+self.verify_completions(
+self.vscode.get_completions("foo1 .v"),
+[
+{
+"text": "var1",
+"label": ".var1 -- int"
+}
+],
+[
+{
+"text": "var2",
+"label": ".var2 -- int"
+}
+]
+)
+
+self.verify_completions(
+self.vscode.get_completions("foo1 . v"),
+[
+{
+"text": "var1",
+"label": "var1 -- int"
+}
+], 
+[
+{
+"text": "var2",
+"label": "var2 -- int"
+}
+]
+)
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D74579: [don't review]Creating environment variable test for lldbd

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244717.
diazhector98 added a comment.

.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74579/new/

https://reviews.llvm.org/D74579

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/Makefile
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/main.cpp
  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

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,11 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+#include  // std::this_thread::sleep_for
+#include  // std::chrono::seconds
+
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1340,6 +1345,7 @@
   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
@@ -1387,13 +1393,26 @@
   // Extract any extra arguments and append them to our program arguments for
   // when we launch
   auto args = GetStrings(arguments, "args");
-  if (!args.empty())
+  if (!args.empty()) 
 g_vsc.launch_info.SetArguments(MakeArgv(args).data(), true);
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
-  if (!envs.empty())
+
+  // if arguments has launchWithDebuggerEnvironment
+  // then append current environment to g_vsc.launch_info
+  if (launchWithDebuggerEnvironment) {
+  // if (true) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  } 
+  if (!envs.empty()) {
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
+  }
 
   auto flags = g_vsc.launch_info.GetLaunchFlags();
 
@@ -2228,6 +2247,8 @@
 //   }]
 // }
 void request_stepIn(const llvm::json::Object ) {
+
+  return;
   llvm::json::Object response;
   FillResponse(request, response);
   auto arguments = request.getObject("arguments");
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -562,7 +562,7 @@
disableSTDIO=False, shellExpandArguments=False,
trace=False, initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None, sourcePath=None,
-   debuggerRoot=None, launchCommands=None):
+   debuggerRoot=None, launchCommands=None, inheritEnvironment=False):
 args_dict = {
 'program': program
 }
@@ -597,6 +597,8 @@
 args_dict['debuggerRoot'] = debuggerRoot
 if launchCommands:
 args_dict['launchCommands'] = launchCommands
+if inheritEnvironment:
+args_dict['inheritEnvironment'] = inheritEnvironment
 command_dict = {
 'command': 'launch',
 'type': 'request',
@@ -891,6 +893,7 @@
   stopCommands=options.stopCmds,
   exitCommands=options.exitCmds)
 else:
+print('Options.Envs: ', options.envs)
 response = 

[Lldb-commits] [PATCH] D74579: [don't review]Creating environment variable test for lldbd

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244719.
diazhector98 added a comment.

- Merge branch 'master' of https://github.com/llvm/llvm-project


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74579/new/

https://reviews.llvm.org/D74579

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/Makefile
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/main.cpp
  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

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,8 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1327,6 +1329,7 @@
   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
@@ -1364,13 +1367,24 @@
   // Extract any extra arguments and append them to our program arguments for
   // when we launch
   auto args = GetStrings(arguments, "args");
-  if (!args.empty())
+  if (!args.empty()) 
 g_vsc.launch_info.SetArguments(MakeArgv(args).data(), true);
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
-  if (!envs.empty())
+
+  if (launchWithDebuggerEnvironment) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  } 
+
+  if (!envs.empty()) {
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
+  }
 
   auto flags = g_vsc.launch_info.GetLaunchFlags();
 
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -570,7 +570,7 @@
disableSTDIO=False, shellExpandArguments=False,
trace=False, initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None, sourcePath=None,
-   debuggerRoot=None, launchCommands=None):
+   debuggerRoot=None, launchCommands=None, inheritEnvironment=False):
 args_dict = {
 'program': program
 }
@@ -605,6 +605,8 @@
 args_dict['debuggerRoot'] = debuggerRoot
 if launchCommands:
 args_dict['launchCommands'] = launchCommands
+if inheritEnvironment:
+args_dict['inheritEnvironment'] = inheritEnvironment
 command_dict = {
 'command': 'launch',
 'type': 'request',
@@ -912,7 +914,9 @@
   initCommands=options.initCmds,
   preRunCommands=options.preRunCmds,
   stopCommands=options.stopCmds,
-  exitCommands=options.exitCmds)
+  exitCommands=options.exitCmds
+  inheritEnvironment=options.inheritEnvironment
+  )
 
 if response['success']:
 if options.sourceBreakpoints:
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py

[Lldb-commits] [PATCH] D74579: [don't review]Creating environment variable test for lldbd

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244701.
diazhector98 added a comment.

Working on comments


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74579/new/

https://reviews.llvm.org/D74579

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/main.cpp
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/Makefile
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/main.cpp
  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

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,8 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -951,9 +953,17 @@
   for (size_t i = 0; i < count; i++) {
 std::string match = matches.GetStringAtIndex(i);
 std::string description = descriptions.GetStringAtIndex(i);
-
+
 llvm::json::Object item;
-EmplaceSafeString(item, "text", match);
+
+llvm::StringRef match_ref = match;
+for(llvm::StringRef commit_point: {".", "->"}) {
+  if (match_ref.contains(commit_point)){
+match_ref = match_ref.rsplit(commit_point).second;
+  }
+}
+EmplaceSafeString(item, "text", match_ref);
+
 if (description.empty())
   EmplaceSafeString(item, "label", match);
 else
@@ -1332,6 +1342,7 @@
   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
@@ -1379,13 +1390,24 @@
   // Extract any extra arguments and append them to our program arguments for
   // when we launch
   auto args = GetStrings(arguments, "args");
-  if (!args.empty())
+  if (!args.empty()) 
 g_vsc.launch_info.SetArguments(MakeArgv(args).data(), true);
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
-  if (!envs.empty())
+
+  if (launchWithDebuggerEnvironment) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  } 
+
+  if (!envs.empty()) {
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
+  }
 
   auto flags = g_vsc.launch_info.GetLaunchFlags();
 
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -562,7 +562,7 @@
disableSTDIO=False, shellExpandArguments=False,
trace=False, initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None, sourcePath=None,
-   debuggerRoot=None, launchCommands=None):
+   debuggerRoot=None, launchCommands=None, inheritEnvironment=False):
 args_dict = {
 'program': program
 }
@@ -597,6 +597,8 @@
 args_dict['debuggerRoot'] = debuggerRoot
 if launchCommands:
 args_dict['launchCommands'] = launchCommands
+if inheritEnvironment:
+args_dict['inheritEnvironment'] = inheritEnvironment
 command_dict = {
 'command': 'launch',

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244749.
diazhector98 added a comment.

Adding the test files


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/package.json


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
"description": 
"Additional environment variables.",
"default": []
},
+   "inheritEnvironment": {
+   "type": 
"boolean",
+   "description": 
"Inherit the VSCode Environment Variables",
+   "default": false
+   },
"stopOnEntry": {
"type": 
"boolean",
"description": 
"Automatically stop after launch.",
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,3 @@
+int main(int argc, char const *argv[]) {
+
+}
Index: 
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ 
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,21 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why tings 
aren't working on build bots
+def test_completions(self):
+"""
+Tests the environment variables
+"""


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,3 @@
+int main(int argc, char const *argv[]) {
+
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,21 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why tings aren't working on build bots
+def test_completions(self):
+"""
+Tests the environment variables
+"""
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 created this revision.
diazhector98 added a reviewer: wallace.
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.

.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D74636

Files:
  lldb/tools/lldb-vscode/package.json


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
"description": 
"Additional environment variables.",
"default": []
},
+   "inheritEnvironment": {
+   "type": 
"boolean",
+   "description": 
"Inherit the VSCode Environment Variables",
+   "default": false
+   },
"stopOnEntry": {
"type": 
"boolean",
"description": 
"Automatically stop after launch.",


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244779.
diazhector98 added a comment.

Adding test for priority


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "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.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,8 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1327,6 +1329,8 @@
   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
@@ -1369,6 +1373,14 @@
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
+  if (launchWithDebuggerEnvironment) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  }
   if (!envs.empty())
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
 
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+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;
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,52 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+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 checkIfPathIsSame(self,lines, path_env_variable):
+for line in lines:
+print(line)
+if line.startswith('PATH='):
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+return
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why things aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=True)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+self.checkIfPathIsSame(lines, path_env_variable)
+
+@skipIfWindows
+@skipIfDarwin
+def test_environment_variable_priority(self):
+"""
+Tests the environment variables priority
+ 

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244781.
diazhector98 added a comment.

Add Makefile


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  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
  lldb/tools/lldb-vscode/lldb-vscode.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "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.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,8 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1327,6 +1329,8 @@
   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
@@ -1369,6 +1373,14 @@
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
+  if (launchWithDebuggerEnvironment) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  }
   if (!envs.empty())
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
 
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+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;
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,52 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+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 checkIfPathIsSame(self,lines, path_env_variable):
+for line in lines:
+print(line)
+if line.startswith('PATH='):
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+return
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why things aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=True)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+self.checkIfPathIsSame(lines, path_env_variable)
+
+@skipIfWindows
+@skipIfDarwin
+def test_environment_variable_priority(self):
+"""
+   

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244782.
diazhector98 added a comment.

Removing print


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  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
  lldb/tools/lldb-vscode/lldb-vscode.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "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.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,8 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1327,6 +1329,8 @@
   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
@@ -1369,6 +1373,14 @@
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
+  if (launchWithDebuggerEnvironment) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  }
   if (!envs.empty())
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
 
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+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;
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,51 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+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 checkIfPathIsSame(self,lines, path_env_variable):
+for line in lines:
+if line.startswith('PATH='):
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+return
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why things aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=True)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+self.checkIfPathIsSame(lines, path_env_variable)
+
+@skipIfWindows
+@skipIfDarwin
+def test_environment_variable_priority(self):
+"""
+Tests the 

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244767.
diazhector98 added a comment.

Continue repair


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+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;
+}
\ No newline at end of file
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,33 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why tings aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=False)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+found = False
+for line in lines:
+if line.startswith('PATH='):
+found = True
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+self.assertTrue(found, 'PATH environment variable not found')
+
\ No newline at end of file
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -570,7 +570,7 @@
disableSTDIO=False, shellExpandArguments=False,
trace=False, initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None, sourcePath=None,
-   debuggerRoot=None, launchCommands=None):
+   debuggerRoot=None, launchCommands=None, inheritEnvironment=False):
 args_dict = {
 'program': program
 }
@@ -605,6 +605,8 @@
 args_dict['debuggerRoot'] = debuggerRoot
 if launchCommands:
 args_dict['launchCommands'] = launchCommands
+if inheritEnvironment:
+args_dict['inheritEnvironment'] = inheritEnvironment
 command_dict = {
 'command': 'launch',
 'type': 'request',
@@ -912,7 +914,8 @@
   initCommands=options.initCmds,
   preRunCommands=options.preRunCmds,
   stopCommands=options.stopCmds,
-  exitCommands=options.exitCmds)
+  exitCommands=options.exitCmds
+  inheritEnvironment=options.inheritEnvironment)
 
 if response['success']:
 if options.sourceBreakpoints:
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
===

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244769.
diazhector98 added a comment.

Continue repair


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+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;
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,33 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why tings aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=False)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+found = False
+for line in lines:
+if line.startswith('PATH='):
+found = True
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+self.assertTrue(found, 'PATH environment variable not found')
+
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -570,7 +570,7 @@
disableSTDIO=False, shellExpandArguments=False,
trace=False, initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None, sourcePath=None,
-   debuggerRoot=None, launchCommands=None):
+   debuggerRoot=None, launchCommands=None, inheritEnvironment=False):
 args_dict = {
 'program': program
 }
@@ -605,6 +605,8 @@
 args_dict['debuggerRoot'] = debuggerRoot
 if launchCommands:
 args_dict['launchCommands'] = launchCommands
+if inheritEnvironment:
+args_dict['inheritEnvironment'] = inheritEnvironment
 command_dict = {
 'command': 'launch',
 'type': 'request',
@@ -912,7 +914,8 @@
   initCommands=options.initCmds,
   preRunCommands=options.preRunCmds,
   stopCommands=options.stopCmds,
-  exitCommands=options.exitCmds)
+  exitCommands=options.exitCmds,
+  inheritEnvironment=options.inheritEnvironment)
 
 if response['success']:
 if options.sourceBreakpoints:
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
===
--- 

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244770.
diazhector98 added a comment.

Continue repair


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,8 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1327,6 +1329,8 @@
   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
@@ -1369,6 +1373,14 @@
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
+  if (launchWithDebuggerEnvironment) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  }
   if (!envs.empty())
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
 
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+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;
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,33 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why tings aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=False)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+found = False
+for line in lines:
+if line.startswith('PATH='):
+found = True
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+self.assertTrue(found, 'PATH environment variable not found')
+
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -570,7 +570,7 @@
disableSTDIO=False, 

[Lldb-commits] [PATCH] D74579: [don't review]Creating environment variable test for lldbd

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244721.
diazhector98 added a comment.

- Comment


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74579/new/

https://reviews.llvm.org/D74579

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/Makefile
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/main.cpp
  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

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,8 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1327,6 +1329,7 @@
   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
@@ -1364,13 +1367,24 @@
   // Extract any extra arguments and append them to our program arguments for
   // when we launch
   auto args = GetStrings(arguments, "args");
-  if (!args.empty())
+  if (!args.empty()) 
 g_vsc.launch_info.SetArguments(MakeArgv(args).data(), true);
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
+
+  if (launchWithDebuggerEnvironment) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  } 
+
   if (!envs.empty())
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
+  
 
   auto flags = g_vsc.launch_info.GetLaunchFlags();
 
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -570,7 +570,7 @@
disableSTDIO=False, shellExpandArguments=False,
trace=False, initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None, sourcePath=None,
-   debuggerRoot=None, launchCommands=None):
+   debuggerRoot=None, launchCommands=None, inheritEnvironment=False):
 args_dict = {
 'program': program
 }
@@ -605,6 +605,8 @@
 args_dict['debuggerRoot'] = debuggerRoot
 if launchCommands:
 args_dict['launchCommands'] = launchCommands
+if inheritEnvironment:
+args_dict['inheritEnvironment'] = inheritEnvironment
 command_dict = {
 'command': 'launch',
 'type': 'request',
@@ -912,7 +914,9 @@
   initCommands=options.initCmds,
   preRunCommands=options.preRunCmds,
   stopCommands=options.stopCmds,
-  exitCommands=options.exitCmds)
+  exitCommands=options.exitCmds
+  inheritEnvironment=options.inheritEnvironment
+  )
 
 if response['success']:
 if options.sourceBreakpoints:
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
===
--- 

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244748.
diazhector98 added a comment.

Add change


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/tools/lldb-vscode/package.json


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
"description": 
"Additional environment variables.",
"default": []
},
+   "inheritEnvironment": {
+   "type": 
"boolean",
+   "description": 
"Inherit the VSCode Environment Variables",
+   "default": false
+   },
"stopOnEntry": {
"type": 
"boolean",
"description": 
"Automatically stop after launch.",


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D74579: [don't review]Creating environment variable test for lldbd

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244723.
diazhector98 added a comment.

Comments


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74579/new/

https://reviews.llvm.org/D74579

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/Makefile
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  
lldb/test/API/testcases/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/testcases/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/test/API/testcases/tools/lldb-vscode/vscode.py
  lldb/tools/lldb-vscode/lldb-vscode.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,8 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1327,6 +1329,7 @@
   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
@@ -1364,13 +1367,24 @@
   // Extract any extra arguments and append them to our program arguments for
   // when we launch
   auto args = GetStrings(arguments, "args");
-  if (!args.empty())
+  if (!args.empty()) 
 g_vsc.launch_info.SetArguments(MakeArgv(args).data(), true);
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
+
+  if (launchWithDebuggerEnvironment) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  } 
+
   if (!envs.empty())
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
+  
 
   auto flags = g_vsc.launch_info.GetLaunchFlags();
 
Index: lldb/test/API/testcases/tools/lldb-vscode/vscode.py
===
--- lldb/test/API/testcases/tools/lldb-vscode/vscode.py
+++ lldb/test/API/testcases/tools/lldb-vscode/vscode.py
@@ -111,7 +111,6 @@
 self.exit_status = None
 self.initialize_body = None
 self.thread_stop_reasons = {}
-self.breakpoint_events = []
 self.sequence = 1
 self.threads = None
 self.recv_thread.start()
@@ -187,7 +186,7 @@
 self.output[category] = output
 self.output_condition.notify()
 self.output_condition.release()
-# no need to add 'output' event packets to our packets list
+# no need to add 'output' packets to our packets list
 return keepGoing
 elif event == 'process':
 # When a new process is attached or launched, remember the
@@ -201,13 +200,6 @@
 self._process_stopped()
 tid = body['threadId']
 self.thread_stop_reasons[tid] = body
-elif event == 'breakpoint':
-# Breakpoint events come in when a breakpoint has locations
-# added or removed. Keep track of them so we can look for them
-# in tests.
-self.breakpoint_events.append(packet)
-# no need to add 'breakpoint' event packets to our packets list
-return keepGoing
 elif packet_type == 'response':
 if packet['command'] == 'disconnect':
 keepGoing = False
@@ -570,7 +562,7 @@
 

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244763.
diazhector98 added a comment.

Continued repair


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/package.json


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
"description": 
"Additional environment variables.",
"default": []
},
+   "inheritEnvironment": {
+   "type": 
"boolean",
+   "description": 
"Inherit the VSCode Environment Variables",
+   "default": false
+   },
"stopOnEntry": {
"type": 
"boolean",
"description": 
"Automatically stop after launch.",
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+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;
+}
\ No newline at end of file
Index: 
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ 
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,33 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why tings 
aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=False)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+found = False
+for line in lines:
+if line.startswith('PATH='):
+found = True
+self.assertTrue(path_env_variable == line, "PATH environment 
variable not the same")
+self.assertTrue(found, 'PATH environment variable not found')
+
\ No newline at end of file


Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+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;
+}
\ No newline at end of file
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py

[Lldb-commits] [PATCH] D74636: [DO NOT REVIEW] Add inheritEnvironment option

2020-02-14 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244771.
diazhector98 added a comment.

Comment


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  
lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
  lldb/tools/lldb-vscode/lldb-vscode.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "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.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,8 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1327,6 +1329,8 @@
   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
@@ -1369,6 +1373,14 @@
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
+  if (launchWithDebuggerEnvironment) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  }
   if (!envs.empty())
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
 
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+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;
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,33 @@
+"""
+Test lldb-vscode completions request
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+from lldbsuite.test import lldbutil
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+
+class TestVSCode_variables(lldbvscode_testcase.VSCodeTestCaseBase):
+
+@skipIfWindows
+@skipIfDarwin # Skip this test for now until we can figure out why tings aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=False)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+found = False
+for line in lines:
+if line.startswith('PATH='):
+found = True
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+self.assertTrue(found, 'PATH environment variable not found')
+
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -570,7 

[Lldb-commits] [PATCH] D74579: [don't review]Creating environment variable test for lldbd

2020-02-13 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 244547.
diazhector98 added a comment.

Squashing


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74579/new/

https://reviews.llvm.org/D74579

Files:
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/completions/TestVSCode_completions.py
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/Makefile
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
  
lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/environmentVariables/main.cpp
  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

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "description": "Additional environment variables.",
 "default": []
 			},
+			"inheritEnvironment": {
+"type": "boolean",
+"description": "Inherit the VSCode Environment Variables",
+"default": false
+			},
 			"stopOnEntry": {
 "type": "boolean",
 "description": "Automatically stop after launch.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,11 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+#include  // std::this_thread::sleep_for
+#include  // std::chrono::seconds
+
+extern char **environ;
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1340,6 +1345,7 @@
   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
@@ -1387,13 +1393,26 @@
   // Extract any extra arguments and append them to our program arguments for
   // when we launch
   auto args = GetStrings(arguments, "args");
-  if (!args.empty())
+  if (!args.empty()) 
 g_vsc.launch_info.SetArguments(MakeArgv(args).data(), true);
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
-  if (!envs.empty())
+
+  // if arguments has launchWithDebuggerEnvironment
+  // then append current environment to g_vsc.launch_info
+  if (launchWithDebuggerEnvironment) {
+  // if (true) {
+char** env_var_pointer = environ;
+std::vector vscode_env_variables;
+for (char* env_variable = *env_var_pointer; env_variable; env_variable=*++env_var_pointer){
+  vscode_env_variables.push_back(env_variable);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  } 
+  if (!envs.empty()) {
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
+  }
 
   auto flags = g_vsc.launch_info.GetLaunchFlags();
 
@@ -2228,6 +2247,8 @@
 //   }]
 // }
 void request_stepIn(const llvm::json::Object ) {
+
+  return;
   llvm::json::Object response;
   FillResponse(request, response);
   auto arguments = request.getObject("arguments");
Index: lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
===
--- lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+++ lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
@@ -562,7 +562,7 @@
disableSTDIO=False, shellExpandArguments=False,
trace=False, initCommands=None, preRunCommands=None,
stopCommands=None, exitCommands=None, sourcePath=None,
-   debuggerRoot=None, launchCommands=None):
+   debuggerRoot=None, launchCommands=None, inheritEnvironment=False):
 args_dict = {
 'program': program
 }
@@ -597,6 +597,8 @@
 args_dict['debuggerRoot'] = debuggerRoot
 if launchCommands:
 args_dict['launchCommands'] = launchCommands
+if inheritEnvironment:
+args_dict['inheritEnvironment'] = inheritEnvironment
 command_dict = {
 'command': 'launch',
 'type': 'request',
@@ -891,6 +893,7 @@
   stopCommands=options.stopCmds,
   exitCommands=options.exitCmds)
 else:
+print('Options.Envs: ', options.envs)
 

[Lldb-commits] [PATCH] D74636: [lldb-vscode] Add inheritEnvironment option

2020-03-10 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 249527.
diazhector98 added a comment.

Adding support for windows systems


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  lldb/test/API/tools/lldb-vscode/completions/main.cpp
  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
  lldb/tools/lldb-vscode/lldb-vscode.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "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.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,12 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+#  if defined(_WIN32)
+extern __declspec(dllimport) char** environ;
+#  else
+extern char** environ;
+#  endif
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1327,6 +1333,8 @@
   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
@@ -1369,6 +1377,14 @@
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
+  if (launchWithDebuggerEnvironment) {
+std::vector vscode_env_variables;
+int cc;
+for (cc = 0; environ[cc]; ++cc) {
+  vscode_env_variables.push_back(environ[cc]);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables), std::end(vscode_env_variables));
+  }
   if (!envs.empty())
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
 
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+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;
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,51 @@
+"""
+Test lldb-vscode environment variables
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+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 checkIfPathIsSame(self,lines, path_env_variable):
+for line in lines:
+if line.startswith('PATH='):
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+return
+
+@skipIfWindows
+#@skipIfDarwin # Skip this test for now until we can figure out why things aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program = self.getBuildArtifact("a.out")
+path_env_variable = 'PATH='+os.environ['PATH']
+self.build_and_launch(program, inheritEnvironment=True)
+self.continue_to_exit()
+output = self.get_stdout().encode('utf-8')
+lines = output.splitlines()
+self.checkIfPathIsSame(lines, path_env_variable)
+
+@skipIfWindows
+#@skipIfDarwin
+def 

[Lldb-commits] [PATCH] D74636: [lldb-vscode] Add inheritEnvironment option

2020-03-10 Thread Héctor Luis Díaz Aceves via Phabricator via lldb-commits
diazhector98 updated this revision to Diff 249536.
diazhector98 added a comment.

Adding remote process check


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74636/new/

https://reviews.llvm.org/D74636

Files:
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/lldbvscode_testcase.py
  lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
  lldb/test/API/tools/lldb-vscode/completions/main.cpp
  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
  lldb/tools/lldb-vscode/lldb-vscode.cpp
  lldb/tools/lldb-vscode/package.json

Index: lldb/tools/lldb-vscode/package.json
===
--- lldb/tools/lldb-vscode/package.json
+++ lldb/tools/lldb-vscode/package.json
@@ -84,6 +84,11 @@
 "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.",
Index: lldb/tools/lldb-vscode/lldb-vscode.cpp
===
--- lldb/tools/lldb-vscode/lldb-vscode.cpp
+++ lldb/tools/lldb-vscode/lldb-vscode.cpp
@@ -49,6 +49,12 @@
 #include "LLDBUtils.h"
 #include "VSCode.h"
 
+#  if defined(_WIN32)
+extern __declspec(dllimport) char** environ;
+#  else
+extern char** environ;
+#  endif
+
 #if defined(_WIN32)
 #ifndef PATH_MAX
 #define PATH_MAX MAX_PATH
@@ -1327,6 +1333,8 @@
   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
@@ -1369,6 +1377,22 @@
 
   // Pass any environment variables along that the user specified.
   auto envs = GetStrings(arguments, "env");
+  if (launchWithDebuggerEnvironment) {
+const char *platform_name = g_vsc.target.GetPlatform().GetName();
+if (platform_name && strcmp(platform_name, "host") != 0) {
+  response["success"] = llvm::json::Value(false);
+  EmplaceSafeString(response, "message", 
+"Can't use inheritEnvironment on a remote process");
+  g_vsc.SendJSON(llvm::json::Value(std::move(response)));
+  return;
+}
+std::vector vscode_env_variables;
+for (int i = 0; environ[i]; ++i) {
+  vscode_env_variables.push_back(environ[i]);
+}
+envs.insert(std::end(envs), std::begin(vscode_env_variables),
+ std::end(vscode_env_variables));
+  }
   if (!envs.empty())
 g_vsc.launch_info.SetEnvironmentEntries(MakeArgv(envs).data(), true);
 
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/main.cpp
@@ -0,0 +1,14 @@
+#include 
+#include 
+#include 
+#include 
+
+extern char **environ;
+
+int main(int argc, char const *argv[], char const *envp[]) {
+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;
+}
Index: lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
===
--- /dev/null
+++ lldb/test/API/tools/lldb-vscode/environmentVariables/TestVSCode_environmentVariables.py
@@ -0,0 +1,51 @@
+"""
+Test lldb-vscode environment variables
+"""
+
+
+import lldbvscode_testcase
+import unittest2
+import vscode
+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 checkIfPathIsSame(self,lines, path_env_variable):
+for line in lines:
+if line.startswith('PATH='):
+self.assertTrue(path_env_variable == line, "PATH environment variable not the same")
+return
+
+@skipIfWindows
+#@skipIfDarwin # Skip this test for now until we can figure out why things aren't working on build bots
+def test_environment_variable(self):
+"""
+Tests the environment variables
+"""
+program =