[Lldb-commits] [lldb] [lldb] refactor Target::Install function (PR #108996)
via lldb-commits
lldb-commits at lists.llvm.org
Fri Sep 20 05:01:29 PDT 2024
================
@@ -76,6 +76,79 @@
using namespace lldb;
using namespace lldb_private;
+namespace {
+
+struct ExecutableInstaller {
+
+ ExecutableInstaller(PlatformSP platform, ModuleSP module)
+ : m_platform{platform}, m_module{module},
+ m_local_file{m_module->GetFileSpec()},
+ m_remote_file{m_module->GetRemoteInstallFileSpec()} {}
+
+ void setRemoteFile() const { m_module->SetPlatformFileSpec(m_remote_file); }
+
+ PlatformSP m_platform;
+ ModuleSP m_module;
+ const FileSpec m_local_file;
+ const FileSpec m_remote_file;
+};
+
+struct MainExecutableInstaller {
+
+ MainExecutableInstaller(PlatformSP platform, TargetSP target, ModuleSP module,
+ ProcessLaunchInfo *launch_info)
+ : m_platform{platform}, m_module{module},
+ m_local_file{m_module->GetFileSpec()},
+ m_remote_file{
+ getRemoteFileSpec(m_platform, target, m_module, m_local_file)},
+ m_launch_info{launch_info} {}
+
+ void setRemoteFile() const {
+ m_module->SetPlatformFileSpec(m_remote_file);
+ m_launch_info->SetExecutableFile(m_remote_file,
+ false /*add_exe_file_as_first_arg*/);
+ m_platform->SetFilePermissions(m_remote_file, 0700 /*-rwx------*/);
+ }
+
+ PlatformSP m_platform;
+ ModuleSP m_module;
+ const FileSpec m_local_file;
+ const FileSpec m_remote_file;
+ ProcessLaunchInfo *m_launch_info;
----------------
dlav-sc wrote:
addressed. In essence, only `m_launch_info` can be private.
https://github.com/llvm/llvm-project/pull/108996
More information about the lldb-commits
mailing list