Fix process launch from Windows host to Android target.

Summary:
- Denormalized path on Windows host causes bad `A` packet.
- Executables copied from Windows host doesn't have executable bits.

Reviewers: tberghammer, zturner, ovyalov

Reviewed By: ovyalov

Subscribers: tberghammer, lldb-commits

Differential Revision: http://reviews.llvm.org/D9492

llvm-svn: 236516
This commit is contained in:
Chaoren Lin 2015-05-05 18:43:19 +00:00
parent 6ebc207703
commit ce36c4cee1
2 changed files with 3 additions and 2 deletions

View File

@ -1312,7 +1312,7 @@ GDBRemoteCommunicationClient::SendArgumentsPacket (const ProcessLaunchInfo &laun
const char *arg = NULL;
const Args &launch_args = launch_info.GetArguments();
if (exe_file)
exe_path = exe_file.GetPath();
exe_path = exe_file.GetPath(false);
else
{
arg = launch_args.GetArgumentAtIndex(0);
@ -3221,7 +3221,7 @@ GDBRemoteCommunicationClient::SetFilePermissions (const char *path,
if (response.GetChar() != 'F')
return Error("invalid response to '%s' packet", packet);
return Error(response.GetU32(false, UINT32_MAX), eErrorTypePOSIX);
return Error(response.GetU32(UINT32_MAX), eErrorTypePOSIX);
}
static uint64_t

View File

@ -2378,6 +2378,7 @@ Target::Install (ProcessLaunchInfo *launch_info)
module_sp->SetPlatformFileSpec(remote_file);
if (is_main_executable)
{
platform_sp->SetFilePermissions(remote_file.GetPath(false).c_str(), 0700);
if (launch_info)
launch_info->SetExecutableFile(remote_file, false);
}