diff options
| author | Todd Fiala <todd.fiala@gmail.com> | 2014-07-22 23:41:36 +0000 |
|---|---|---|
| committer | Todd Fiala <todd.fiala@gmail.com> | 2014-07-22 23:41:36 +0000 |
| commit | 015d818b59dbdadc2726adc6132be1b3da4d6387 (patch) | |
| tree | 208664b1730e431210c5353d12f0e71b619fec65 /lldb/source/Target | |
| parent | c90a85ff995b9fb9faefecba2304e68f4d8e5d95 (diff) | |
| download | bcm5719-llvm-015d818b59dbdadc2726adc6132be1b3da4d6387.tar.gz bcm5719-llvm-015d818b59dbdadc2726adc6132be1b3da4d6387.zip | |
Enable lldb-platform exe support for Linux.
This change enables lldb-platform for Linux. In addition, it does the following:
* fixes Host::GetLLDBPath() to work on Linux/*BSD for ePathTypeSupportExecutableDir-relative paths.
* adds more logging and comments around lldb-platform startup and remote lldb-platform usage.
* refactors lldb-platform remote-* support for Darwin and Linux into PlatformPOSIX. This, in theory, is the bulk of what is needed for *BSD to make remote connections to lldb-platform as well (although I haven't tested that yet). FreeBSD can make similar changes to their Platform* as was made here for PlatformLinux to pick up the rest of the bits.
* teaches GDBRemoteCommunication to use lldb-gdbserver for non-Apple hosts.
llvm-svn: 213707
Diffstat (limited to 'lldb/source/Target')
| -rw-r--r-- | lldb/source/Target/Target.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp index bc46df96788..d48df888381 100644 --- a/lldb/source/Target/Target.cpp +++ b/lldb/source/Target/Target.cpp @@ -2368,7 +2368,8 @@ Target::Launch (Listener &listener, ProcessLaunchInfo &launch_info) if (!launch_info.GetArchitecture().IsValid()) launch_info.GetArchitecture() = GetArchitecture(); - + + // If we're not already connected to the process, and if we have a platform that can launch a process for debugging, go ahead and do that here. if (state != eStateConnected && platform_sp && platform_sp->CanDebugProcess ()) { m_process_sp = GetPlatform()->DebugProcess (launch_info, @@ -2385,10 +2386,12 @@ Target::Launch (Listener &listener, ProcessLaunchInfo &launch_info) } else { + // Use a Process plugin to construct the process. const char *plugin_name = launch_info.GetProcessPluginName(); CreateProcess (listener, plugin_name, NULL); } - + + // Since we didn't have a platform launch the process, launch it here. if (m_process_sp) error = m_process_sp->Launch (launch_info); } |

