[Lldb-commits] [lldb] 9bb1178 - Revert "[lldb] Add a setting to not install the main executable"

Francesco Petrogalli via lldb-commits lldb-commits at lists.llvm.org
Tue Jan 21 11:24:25 PST 2020


Author: Francesco Petrogalli
Date: 2020-01-21T19:24:02Z
New Revision: 9bb11785dca6b8ee1edb69b52c936edc95a794f0

URL: https://github.com/llvm/llvm-project/commit/9bb11785dca6b8ee1edb69b52c936edc95a794f0
DIFF: https://github.com/llvm/llvm-project/commit/9bb11785dca6b8ee1edb69b52c936edc95a794f0.diff

LOG: Revert "[lldb] Add a setting to not install the main executable"

The commit has been reverted as it does not mention the author of the
patch.

This reverts commit 7c9bcba644c4fc2178e20060d9ba2ff1f50ae15e.

Added: 
    

Modified: 
    lldb/include/lldb/Target/Target.h
    lldb/source/Target/Target.cpp
    lldb/source/Target/TargetProperties.td

Removed: 
    lldb/packages/Python/lldbsuite/test/commands/target/auto-install-main-executable/Makefile
    lldb/packages/Python/lldbsuite/test/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py
    lldb/packages/Python/lldbsuite/test/commands/target/auto-install-main-executable/main.cpp


################################################################################
diff  --git a/lldb/include/lldb/Target/Target.h b/lldb/include/lldb/Target/Target.h
index 4396f05c75aa..1e9153c401ef 100644
--- a/lldb/include/lldb/Target/Target.h
+++ b/lldb/include/lldb/Target/Target.h
@@ -207,8 +207,6 @@ class TargetProperties : public Properties {
 
   bool GetRequireHardwareBreakpoints() const;
 
-  bool GetAutoInstallMainExecutable() const;
-
 private:
   // Callbacks for m_launch_info.
   void Arg0ValueChangedCallback();

diff  --git a/lldb/packages/Python/lldbsuite/test/commands/target/auto-install-main-executable/Makefile b/lldb/packages/Python/lldbsuite/test/commands/target/auto-install-main-executable/Makefile
deleted file mode 100644
index 1354ec49464a..000000000000
--- a/lldb/packages/Python/lldbsuite/test/commands/target/auto-install-main-executable/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-CXX_SOURCES := main.cpp
-CXXFLAGS := -DBUILD=\"stock\"
-
-a.out: a.device.out
-
-include Makefile.rules
-
-a.device.out:
-	$(CXX) $(CXXFLAGS) -DBUILD=\"device\" -o $@ $(SRCDIR)/main.cpp

diff  --git a/lldb/packages/Python/lldbsuite/test/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py b/lldb/packages/Python/lldbsuite/test/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py
deleted file mode 100644
index 0169cd494f54..000000000000
--- a/lldb/packages/Python/lldbsuite/test/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py
+++ /dev/null
@@ -1,137 +0,0 @@
-"""
-Test target commands: target.auto-install-main-executable.
-"""
-
-import time
-import gdbremote_testcase
-
-from lldbsuite.test.decorators import *
-from lldbsuite.test.lldbtest import *
-from lldbsuite.test import lldbutil
-
-
-class TestAutoInstallMainExecutable(gdbremote_testcase.GdbRemoteTestCaseBase):
-    mydir = TestBase.compute_mydir(__file__)
-
-    def setUp(self):
-        super(TestAutoInstallMainExecutable, self).setUp()
-        self._initial_platform = lldb.DBG.GetSelectedPlatform()
-
-    def tearDown(self):
-        lldb.DBG.SetSelectedPlatform(self._initial_platform)
-        super(TestAutoInstallMainExecutable, self).tearDown()
-
-    @llgs_test
-    @no_debug_info_test
-    @skipIf(remote=False)
-    @expectedFailureAll(hostoslist=["windows"], triple='.*-android')
-    def test_target_auto_install_main_executable(self):
-        self.build()
-        self.init_llgs_test(False)
-
-        # Manually install the modified binary.
-        working_dir = lldb.remote_platform.GetWorkingDirectory()
-        src_device = lldb.SBFileSpec(self.getBuildArtifact("a.device.out"))
-        dest = lldb.SBFileSpec(os.path.join(working_dir, "a.out"))
-        err = lldb.remote_platform.Put(src_device, dest)
-        if err.Fail():
-            raise RuntimeError(
-                "Unable copy '%s' to '%s'.\n>>> %s" %
-                (src_device.GetFilename(), working_dir, err.GetCString()))
-
-        m = re.search("^(.*)://([^/]*):(.*)$", configuration.lldb_platform_url)
-        protocol = m.group(1)
-        hostname = m.group(2)
-        hostport = int(m.group(3))
-        listen_url = "*:"+str(hostport+1)
-
-        commandline_args = [
-            "platform",
-            "--listen",
-            listen_url,
-            "--server"
-            ]
-
-        self.spawnSubprocess(
-            self.debug_monitor_exe,
-            commandline_args,
-            install_remote=False)
-        self.addTearDownHook(self.cleanupSubprocesses)
-
-        # Wait for the new process gets ready.
-        time.sleep(0.1)
-
-        new_debugger = lldb.SBDebugger.Create()
-        new_debugger.SetAsync(False)
-
-        def del_debugger(new_debugger=new_debugger):
-            del new_debugger
-        self.addTearDownHook(del_debugger)
-
-        new_platform = lldb.SBPlatform(lldb.remote_platform.GetName())
-        new_debugger.SetSelectedPlatform(new_platform)
-        new_interpreter = new_debugger.GetCommandInterpreter()
-
-        connect_url = "%s://%s:%s" % (protocol, hostname, str(hostport+1))
-
-        command = "platform connect %s" % (connect_url)
-
-        result = lldb.SBCommandReturnObject()
-
-        # Test the default setting.
-        new_interpreter.HandleCommand("settings show target.auto-install-main-executable", result)
-        self.assertTrue(
-            result.Succeeded() and
-            "target.auto-install-main-executable (boolean) = true" in result.GetOutput(),
-            "Default settings for target.auto-install-main-executable failed.: %s - %s" %
-            (result.GetOutput(), result.GetError()))
-
-        # Disable the auto install.
-        new_interpreter.HandleCommand("settings set target.auto-install-main-executable false", result)
-        new_interpreter.HandleCommand("settings show target.auto-install-main-executable", result)
-        self.assertTrue(
-            result.Succeeded() and
-            "target.auto-install-main-executable (boolean) = false" in result.GetOutput(),
-            "Default settings for target.auto-install-main-executable failed.: %s - %s" %
-            (result.GetOutput(), result.GetError()))
-
-        new_interpreter.HandleCommand("platform select %s"%configuration.lldb_platform_name, result)
-        new_interpreter.HandleCommand(command, result)
-
-        self.assertTrue(
-            result.Succeeded(),
-            "platform process connect failed: %s - %s" %
-            (result.GetOutput(),result.GetError()))
-
-        # Create the target with the original file.
-        new_interpreter.HandleCommand("target create --remote-file %s %s "%
-                                        (os.path.join(working_dir,dest.GetFilename()), self.getBuildArtifact("a.out")),
-                                      result)
-        self.assertTrue(
-            result.Succeeded(),
-            "platform create failed: %s - %s" %
-            (result.GetOutput(),result.GetError()))
-
-        target = new_debugger.GetSelectedTarget()
-        breakpoint = target.BreakpointCreateByName("main")
-
-        launch_info = lldb.SBLaunchInfo(None)
-        error = lldb.SBError()
-        process = target.Launch(launch_info, error)
-        self.assertTrue(process, PROCESS_IS_VALID)
-
-        thread = lldbutil.get_stopped_thread(process, lldb.eStopReasonBreakpoint)
-        self.assertTrue(
-            thread.IsValid(),
-            "There should be a thread stopped due to breakpoint")
-
-        frame = thread.GetFrameAtIndex(0)
-        self.assertEqual(frame.GetFunction().GetName(), "main")
-
-        new_interpreter.HandleCommand("target variable build", result)
-        self.assertTrue(
-            result.Succeeded() and
-            '"device"' in result.GetOutput(),
-            "Magic in the binary is wrong: %s " % result.GetOutput())
-
-        process.Continue()

diff  --git a/lldb/packages/Python/lldbsuite/test/commands/target/auto-install-main-executable/main.cpp b/lldb/packages/Python/lldbsuite/test/commands/target/auto-install-main-executable/main.cpp
deleted file mode 100644
index 373f1a724e28..000000000000
--- a/lldb/packages/Python/lldbsuite/test/commands/target/auto-install-main-executable/main.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <cstdio>
-
-const char* build = BUILD;
-
-int main(int argc, char **argv) {
-  printf("argc: %d\n", argc);
-  return argv[0][0];
-}

diff  --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp
index 9ac244ca027f..1b691e1332b6 100644
--- a/lldb/source/Target/Target.cpp
+++ b/lldb/source/Target/Target.cpp
@@ -2691,10 +2691,8 @@ Status Target::Install(ProcessLaunchInfo *launch_info) {
   if (platform_sp) {
     if (platform_sp->IsRemote()) {
       if (platform_sp->IsConnected()) {
-        // Install all files that have an install path when connected to a
-        // remote platform. If target.auto-install-main-executable is set then
-        // also install the main executable even if it does not have an explicit
-        // install path specified.
+        // Install all files that have an install path, and always install the
+        // main executable when connected to a remote platform
         const ModuleList &modules = GetImages();
         const size_t num_images = modules.GetSize();
         for (size_t idx = 0; idx < num_images; ++idx) {
@@ -2705,8 +2703,10 @@ Status Target::Install(ProcessLaunchInfo *launch_info) {
             if (local_file) {
               FileSpec remote_file(module_sp->GetRemoteInstallFileSpec());
               if (!remote_file) {
-                if (is_main_executable && GetAutoInstallMainExecutable()) {
-                  // Automatically install the main executable.
+                if (is_main_executable) // TODO: add setting for always
+                                        // installing main executable???
+                {
+                  // Always install the main executable
                   remote_file = platform_sp->GetRemoteWorkingDirectory();
                   remote_file.AppendPathComponent(
                       module_sp->GetFileSpec().GetFilename().GetCString());
@@ -3970,12 +3970,6 @@ void TargetProperties::SetRequireHardwareBreakpoints(bool b) {
   m_collection_sp->SetPropertyAtIndexAsBoolean(nullptr, idx, b);
 }
 
-bool TargetProperties::GetAutoInstallMainExecutable() const {
-  const uint32_t idx = ePropertyAutoInstallMainExecutable;
-  return m_collection_sp->GetPropertyAtIndexAsBoolean(
-      nullptr, idx, g_target_properties[idx].default_uint_value != 0);
-}
-
 void TargetProperties::Arg0ValueChangedCallback() {
   m_launch_info.SetArg0(GetArg0());
 }

diff  --git a/lldb/source/Target/TargetProperties.td b/lldb/source/Target/TargetProperties.td
index ce08e44acb9b..ff8062aaa2cb 100644
--- a/lldb/source/Target/TargetProperties.td
+++ b/lldb/source/Target/TargetProperties.td
@@ -154,9 +154,6 @@ let Definition = "target" in {
   def RequireHardwareBreakpoints: Property<"require-hardware-breakpoint", "Boolean">,
     DefaultFalse,
     Desc<"Require all breakpoints to be hardware breakpoints.">;
-  def AutoInstallMainExecutable: Property<"auto-install-main-executable", "Boolean">,
-    DefaultTrue,
-    Desc<"Always install the main executable when connected to a remote platform.">;
 }
 
 let Definition = "process" in {


        


More information about the lldb-commits mailing list