[Lldb-commits] [lldb] [llvm] Revert "[LLDB] Add a target.launch-working-dir setting" (PR #114973)

Walter Erquinigo via lldb-commits lldb-commits at lists.llvm.org
Tue Nov 5 04:11:52 PST 2024


https://github.com/walter-erquinigo created https://github.com/llvm/llvm-project/pull/114973

Reverts llvm/llvm-project#113521

>From 84633d7ccc926abff46c6480dbe7ccc7e48247ce Mon Sep 17 00:00:00 2001
From: Walter Erquinigo <a20012251 at gmail.com>
Date: Tue, 5 Nov 2024 07:11:32 -0500
Subject: [PATCH] Revert "[LLDB] Add a target.launch-working-dir setting
 (#113521)"

This reverts commit 6620cd25234a42ca4b51490627afcb93fa443dc3.
---
 lldb/include/lldb/Target/Target.h             |  3 -
 lldb/source/Commands/CommandObjectProcess.cpp |  7 ---
 lldb/source/Commands/Options.td               |  5 +-
 lldb/source/Target/Target.cpp                 |  5 --
 lldb/source/Target/TargetProperties.td        |  7 ---
 .../process/launch/TestProcessLaunch.py       | 57 -------------------
 llvm/docs/ReleaseNotes.md                     |  2 -
 7 files changed, 1 insertion(+), 85 deletions(-)

diff --git a/lldb/include/lldb/Target/Target.h b/lldb/include/lldb/Target/Target.h
index cab21c29a7486f..e4848f19e64d62 100644
--- a/lldb/include/lldb/Target/Target.h
+++ b/lldb/include/lldb/Target/Target.h
@@ -37,7 +37,6 @@
 #include "lldb/Utility/RealpathPrefixes.h"
 #include "lldb/Utility/Timeout.h"
 #include "lldb/lldb-public.h"
-#include "llvm/ADT/StringRef.h"
 
 namespace lldb_private {
 
@@ -115,8 +114,6 @@ class TargetProperties : public Properties {
 
   void SetDisableSTDIO(bool b);
 
-  llvm::StringRef GetLaunchWorkingDirectory() const;
-
   const char *GetDisassemblyFlavor() const;
 
   InlineStrategy GetInlineStrategy() const;
diff --git a/lldb/source/Commands/CommandObjectProcess.cpp b/lldb/source/Commands/CommandObjectProcess.cpp
index 7444e46aa729e7..e7c7d07ad47722 100644
--- a/lldb/source/Commands/CommandObjectProcess.cpp
+++ b/lldb/source/Commands/CommandObjectProcess.cpp
@@ -201,13 +201,6 @@ class CommandObjectProcessLaunch : public CommandObjectProcessLaunchOrAttach {
     if (target->GetDisableSTDIO())
       m_options.launch_info.GetFlags().Set(eLaunchFlagDisableSTDIO);
 
-    if (!m_options.launch_info.GetWorkingDirectory()) {
-      if (llvm::StringRef wd = target->GetLaunchWorkingDirectory();
-          !wd.empty()) {
-        m_options.launch_info.SetWorkingDirectory(FileSpec(wd));
-      }
-    }
-
     // Merge the launch info environment with the target environment.
     Environment target_env = target->GetEnvironment();
     m_options.launch_info.GetEnvironment().insert(target_env.begin(),
diff --git a/lldb/source/Commands/Options.td b/lldb/source/Commands/Options.td
index 9d8d45d083eca4..4276d9e7f9c8b0 100644
--- a/lldb/source/Commands/Options.td
+++ b/lldb/source/Commands/Options.td
@@ -691,10 +691,7 @@ let Command = "process launch" in {
   def process_launch_plugin : Option<"plugin", "P">, Arg<"Plugin">,
     Desc<"Name of the process plugin you want to use.">;
   def process_launch_working_dir : Option<"working-dir", "w">, Arg<"DirectoryName">,
-    Desc<"Set the current working directory to <path> when running the inferior. This option "
-         "applies only to the current `process launch` invocation. If "
-         "`target.launch-working-dir` is set and this option is given, the value of this "
-         "option will be used instead of the setting.">;
+    Desc<"Set the current working directory to <path> when running the inferior.">;
   def process_launch_arch : Option<"arch", "a">, Arg<"Architecture">,
     Desc<"Set the architecture for the process to launch when ambiguous.">;
   def process_launch_environment : Option<"environment", "E">,
diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp
index 242d2eaec2a15a..8cd3fa8af6bae1 100644
--- a/lldb/source/Target/Target.cpp
+++ b/lldb/source/Target/Target.cpp
@@ -4471,11 +4471,6 @@ void TargetProperties::SetDisableSTDIO(bool b) {
   const uint32_t idx = ePropertyDisableSTDIO;
   SetPropertyAtIndex(idx, b);
 }
-llvm::StringRef TargetProperties::GetLaunchWorkingDirectory() const {
-  const uint32_t idx = ePropertyLaunchWorkingDir;
-  return GetPropertyAtIndexAs<llvm::StringRef>(
-      idx, g_target_properties[idx].default_cstr_value);
-}
 
 const char *TargetProperties::GetDisassemblyFlavor() const {
   const uint32_t idx = ePropertyDisassemblyFlavor;
diff --git a/lldb/source/Target/TargetProperties.td b/lldb/source/Target/TargetProperties.td
index 00ad8dd2a9f7f9..fb61478fb752dc 100644
--- a/lldb/source/Target/TargetProperties.td
+++ b/lldb/source/Target/TargetProperties.td
@@ -201,13 +201,6 @@ let Definition = "target" in {
   def DebugUtilityExpression: Property<"debug-utility-expression", "Boolean">,
     DefaultFalse,
     Desc<"Enable debugging of LLDB-internal utility expressions.">;
-  def LaunchWorkingDir: Property<"launch-working-dir", "String">,
-    DefaultStringValue<"">,
-    Desc<"A default value for the working directory to use when launching processes. "
-         "It is ignored when empty. This setting is only used when the target is "
-         "launched. If you change this setting, the new value will only apply to "
-         "subsequent launches. Commands that take an explicit working directory "
-         "will override this setting.">;
 }
 
 let Definition = "process_experimental" in {
diff --git a/lldb/test/API/commands/process/launch/TestProcessLaunch.py b/lldb/test/API/commands/process/launch/TestProcessLaunch.py
index 2da75544dd5c90..45f9f494ab8f5c 100644
--- a/lldb/test/API/commands/process/launch/TestProcessLaunch.py
+++ b/lldb/test/API/commands/process/launch/TestProcessLaunch.py
@@ -8,7 +8,6 @@
 from lldbsuite.test.decorators import *
 from lldbsuite.test.lldbtest import *
 from lldbsuite.test import lldbutil
-from pathlib import Path
 
 
 class ProcessLaunchTestCase(TestBase):
@@ -207,59 +206,3 @@ def test_environment_with_special_char(self):
         self.assertEqual(value, evil_var)
         process.Continue()
         self.assertState(process.GetState(), lldb.eStateExited, PROCESS_EXITED)
-
-    def test_target_launch_working_dir_prop(self):
-        """Test that the setting `target.launch-working-dir` is correctly used when launching a process."""
-        d = {"CXX_SOURCES": "print_cwd.cpp"}
-        self.build(dictionary=d)
-        self.setTearDownCleanup(d)
-        exe = self.getBuildArtifact("a.out")
-        self.runCmd("file " + exe)
-
-        mywd = "my_working_dir"
-        out_file_name = "my_working_dir_test.out"
-
-        my_working_dir_path = self.getBuildArtifact(mywd)
-        lldbutil.mkdir_p(my_working_dir_path)
-        out_file_path = os.path.join(my_working_dir_path, out_file_name)
-        another_working_dir_path = Path(
-            os.path.join(my_working_dir_path, "..")
-        ).resolve()
-
-        # If -w is not passed to process launch, then the setting will be used.
-        self.runCmd(
-            f"settings set target.launch-working-dir {another_working_dir_path}"
-        )
-        launch_command = f"process launch -o {out_file_path}"
-
-        self.expect(
-            launch_command,
-            patterns=["Process .* launched: .*a.out"],
-        )
-
-        out = lldbutil.read_file_on_target(self, out_file_path)
-
-        self.assertIn(f"stdout: {another_working_dir_path}", out)
-
-        # If -w is passed to process launch, that value will be used instead of the setting.
-        launch_command = f"process launch -w {my_working_dir_path} -o {out_file_path}"
-
-        self.expect(
-            launch_command,
-            patterns=["Process .* launched: .*a.out"],
-        )
-
-        out = lldbutil.read_file_on_target(self, out_file_path)
-        self.assertIn(f"stdout: {my_working_dir_path}", out)
-
-        # If set to empty, then LLDB's cwd will be used to launch the process.
-        self.runCmd(f"settings set target.launch-working-dir ''")
-        launch_command = f"process launch -o {out_file_path}"
-
-        self.expect(
-            launch_command,
-            patterns=["Process .* launched: .*a.out"],
-        )
-
-        out = lldbutil.read_file_on_target(self, out_file_path)
-        self.assertNotIn(f"stdout: {another_working_dir_path}", out)
diff --git a/llvm/docs/ReleaseNotes.md b/llvm/docs/ReleaseNotes.md
index 5252ae5aadcf6a..290473cdb46f4c 100644
--- a/llvm/docs/ReleaseNotes.md
+++ b/llvm/docs/ReleaseNotes.md
@@ -309,8 +309,6 @@ Changes to LLDB
 * Program stdout/stderr redirection will now open the file with O_TRUNC flag, make sure to truncate the file if path already exists.
   * eg. `settings set target.output-path/target.error-path <path/to/file>`
 
-* A new setting `target.launch-working-dir` can be used to set a persistent cwd that is used by default by `process launch` and `run`.
-
 Changes to BOLT
 ---------------------------------
 



More information about the lldb-commits mailing list