================ @@ -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 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits