diff options
Diffstat (limited to 'lldb/source/Plugins/Process/Windows/DynamicLoaderWindows.cpp')
-rw-r--r-- | lldb/source/Plugins/Process/Windows/DynamicLoaderWindows.cpp | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/Windows/DynamicLoaderWindows.cpp b/lldb/source/Plugins/Process/Windows/DynamicLoaderWindows.cpp new file mode 100644 index 00000000000..bc59069701f --- /dev/null +++ b/lldb/source/Plugins/Process/Windows/DynamicLoaderWindows.cpp @@ -0,0 +1,100 @@ +//===-- DynamicLoaderWindows.cpp --------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "DynamicLoaderWindows.h" + +#include "lldb/Core/PluginManager.h" +#include "lldb/Target/Process.h" +#include "lldb/Target/Target.h" + +#include "llvm/ADT/Triple.h" + +using namespace lldb; +using namespace lldb_private; + +DynamicLoaderWindows::DynamicLoaderWindows(Process *process) + : DynamicLoader(process) +{ + +} + +DynamicLoaderWindows::~DynamicLoaderWindows() +{ +} + +void DynamicLoaderWindows::Initialize() +{ + PluginManager::RegisterPlugin(GetPluginNameStatic(), + GetPluginDescriptionStatic(), + CreateInstance); +} + +void DynamicLoaderWindows::Terminate() +{ + +} + +ConstString DynamicLoaderWindows::GetPluginNameStatic() +{ + static ConstString g_plugin_name("windows-dyld"); + return g_plugin_name; +} + +const char *DynamicLoaderWindows::GetPluginDescriptionStatic() +{ + return "Dynamic loader plug-in that watches for shared library " + "loads/unloads in Windows processes."; +} + + +DynamicLoader *DynamicLoaderWindows::CreateInstance(Process *process, bool force) +{ + bool should_create = force; + if (!should_create) + { + const llvm::Triple &triple_ref = process->GetTarget().GetArchitecture().GetTriple(); + if (triple_ref.getOS() == llvm::Triple::Win32) + should_create = true; + } + + if (should_create) + return new DynamicLoaderWindows (process); + return nullptr; +} + +void DynamicLoaderWindows::DidAttach() +{ + +} + +void DynamicLoaderWindows::DidLaunch() +{ + +} + +Error DynamicLoaderWindows::CanLoadImage() +{ + return Error(); +} + +ConstString DynamicLoaderWindows::GetPluginName() +{ + return GetPluginNameStatic(); +} + +uint32_t DynamicLoaderWindows::GetPluginVersion() +{ + return 1; +} + +ThreadPlanSP +DynamicLoaderWindows::GetStepThroughTrampolinePlan(Thread &thread, bool stop) +{ + return ThreadPlanSP(); +}
\ No newline at end of file |