[Lldb-commits] [PATCH] Refactor GdbRemote test cases to support remote platforms

Greg Clayton clayborg at gmail.com
Tue Mar 10 13:27:01 PDT 2015

You shouldn't ever have to call SBPlatform::Install() manually unless you just want to run a process remotely without debugging it. Is this what you are trying to do? Install something so that lldb-server can be used? If so ignore what I am saying below.

If you are trying to just debug something remotely, you should be able to connect to the remote platform and it will of course launch lldb-server for you and you should follow the rules below:

The idea with the current SBPlatform and debugging a remote process is:
1 - The main executable will always be installed in the remote working directory unless you set the remote install file spec (see below)
2 - Get a SBModule you want to have uploaded from your target by either finding it, or adding it to the target using SBTarget::AddModule(...) and then call SBModule::SetRemoteInstallFileSpec (lldb::SBFileSpec &file) on any module that you want to ensure is installed by giving the remote path.
3 - When the process is launched, it will iterate through all modules in a target and check for a remote install file spec and anything that has it will be installed to the desired location, and of course the main executable always gets installed. This happens in:

  Target::Install (ProcessLaunchInfo *launch_info)

So check your code to make sure it isn't the above case where you just want to remote debug a process and where there is already code that can do the auto-install stuff for you.



More information about the lldb-commits mailing list