summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp')
-rw-r--r--lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp b/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp
index dd391b4ca4d..0b95630e25b 100644
--- a/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp
+++ b/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp
@@ -9,6 +9,7 @@
#include "DynamicLoaderWindowsDYLD.h"
+#include "lldb/Core/Log.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/Target.h"
@@ -72,11 +73,38 @@ DynamicLoaderWindowsDYLD::CreateInstance(Process *process, bool force)
void
DynamicLoaderWindowsDYLD::DidAttach()
{
+ Log *log(GetLogIfAnyCategoriesSet(LIBLLDB_LOG_DYNAMIC_LOADER));
+ if (log)
+ log->Printf("DynamicLoaderWindowsDYLD::%s()", __FUNCTION__);
+
+ DidLaunch();
+
+ m_process->LoadModules();
}
void
DynamicLoaderWindowsDYLD::DidLaunch()
{
+ Log *log(GetLogIfAnyCategoriesSet(LIBLLDB_LOG_DYNAMIC_LOADER));
+ if (log)
+ log->Printf("DynamicLoaderWindowsDYLD::%s()", __FUNCTION__);
+
+ ModuleSP executable = GetTargetExecutable();
+
+ if (!executable.get())
+ return;
+
+ ModuleList module_list;
+ module_list.Append(executable);
+ // FIXME: We probably should not always use 0 as the load address
+ // here. Testing showed that when debugging a process that we start
+ // ourselves, there's no randomization of the load address of the
+ // main module, therefore an offset of 0 will be valid.
+ // If we attach to an already running process, this is probably
+ // going to be wrong and we'll have to get the load address somehow.
+ UpdateLoadedSections(executable, LLDB_INVALID_ADDRESS, 0);
+
+ m_process->GetTarget().ModulesDidLoad(module_list);
}
Error
OpenPOWER on IntegriCloud