diff options
Diffstat (limited to 'lldb/source/Plugins/Process/Linux/ProcessLinux.cpp')
-rw-r--r-- | lldb/source/Plugins/Process/Linux/ProcessLinux.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp b/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp index 00bdda51036..d7fe1dae0a1 100644 --- a/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp +++ b/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp @@ -13,6 +13,7 @@ #include "lldb/Core/PluginManager.h" #include "lldb/Host/Host.h" #include "lldb/Symbol/ObjectFile.h" +#include "lldb/Target/DynamicLoader.h" #include "lldb/Target/Target.h" #include "ProcessLinux.h" @@ -102,6 +103,19 @@ ProcessLinux::DoAttachToProcessWithID(lldb::pid_t pid) } Error +ProcessLinux::WillLaunch(Module* module) +{ + Error error; + + m_dyld_ap.reset(DynamicLoader::FindPlugin(this, "dynamic-loader.linux-dyld")); + if (m_dyld_ap.get() == NULL) + error.SetErrorString("unable to find the dynamic loader named " + "'dynamic-loader.linux-dyld'"); + + return error; +} + +Error ProcessLinux::DoLaunch(Module *module, char const *argv[], char const *envp[], @@ -128,6 +142,13 @@ ProcessLinux::DoLaunch(Module *module, return error; } +void +ProcessLinux::DidLaunch() +{ + if (m_dyld_ap.get() != NULL) + m_dyld_ap->DidLaunch(); +} + Error ProcessLinux::DoResume() { @@ -371,6 +392,12 @@ ProcessLinux::GetByteOrder() const return m_byte_order; } +DynamicLoader * +ProcessLinux::GetDynamicLoader() +{ + return m_dyld_ap.get(); +} + //------------------------------------------------------------------------------ // ProcessInterface protocol. |