aboutsummaryrefslogtreecommitdiff
path: root/source/Plugins/Process/Windows/Live/LocalDebugDelegate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/Plugins/Process/Windows/Live/LocalDebugDelegate.cpp')
-rw-r--r--source/Plugins/Process/Windows/Live/LocalDebugDelegate.cpp91
1 files changed, 91 insertions, 0 deletions
diff --git a/source/Plugins/Process/Windows/Live/LocalDebugDelegate.cpp b/source/Plugins/Process/Windows/Live/LocalDebugDelegate.cpp
new file mode 100644
index 000000000000..a0ac9725c756
--- /dev/null
+++ b/source/Plugins/Process/Windows/Live/LocalDebugDelegate.cpp
@@ -0,0 +1,91 @@
+//===-- LocalDebugDelegate.cpp ----------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "LocalDebugDelegate.h"
+#include "ProcessWindowsLive.h"
+
+using namespace lldb;
+using namespace lldb_private;
+
+LocalDebugDelegate::LocalDebugDelegate(ProcessWP process)
+ : m_process(process)
+{
+}
+
+void
+LocalDebugDelegate::OnExitProcess(uint32_t exit_code)
+{
+ if (ProcessWindowsLiveSP process = GetProcessPointer())
+ process->OnExitProcess(exit_code);
+}
+
+void
+LocalDebugDelegate::OnDebuggerConnected(lldb::addr_t image_base)
+{
+ if (ProcessWindowsLiveSP process = GetProcessPointer())
+ process->OnDebuggerConnected(image_base);
+}
+
+ExceptionResult
+LocalDebugDelegate::OnDebugException(bool first_chance, const ExceptionRecord &record)
+{
+ if (ProcessWindowsLiveSP process = GetProcessPointer())
+ return process->OnDebugException(first_chance, record);
+ else
+ return ExceptionResult::MaskException;
+}
+
+void
+LocalDebugDelegate::OnCreateThread(const HostThread &thread)
+{
+ if (ProcessWindowsLiveSP process = GetProcessPointer())
+ process->OnCreateThread(thread);
+}
+
+void
+LocalDebugDelegate::OnExitThread(lldb::tid_t thread_id, uint32_t exit_code)
+{
+ if (ProcessWindowsLiveSP process = GetProcessPointer())
+ process->OnExitThread(thread_id, exit_code);
+}
+
+void
+LocalDebugDelegate::OnLoadDll(const lldb_private::ModuleSpec &module_spec, lldb::addr_t module_addr)
+{
+ if (ProcessWindowsLiveSP process = GetProcessPointer())
+ process->OnLoadDll(module_spec, module_addr);
+}
+
+void
+LocalDebugDelegate::OnUnloadDll(lldb::addr_t module_addr)
+{
+ if (ProcessWindowsLiveSP process = GetProcessPointer())
+ process->OnUnloadDll(module_addr);
+}
+
+void
+LocalDebugDelegate::OnDebugString(const std::string &string)
+{
+ if (ProcessWindowsLiveSP process = GetProcessPointer())
+ process->OnDebugString(string);
+}
+
+void
+LocalDebugDelegate::OnDebuggerError(const Error &error, uint32_t type)
+{
+ if (ProcessWindowsLiveSP process = GetProcessPointer())
+ process->OnDebuggerError(error, type);
+}
+
+ProcessWindowsLiveSP
+LocalDebugDelegate::GetProcessPointer()
+{
+ ProcessSP process = m_process.lock();
+ return std::static_pointer_cast<ProcessWindowsLive>(process);
+}