Files
clang-p2996/lldb/source/Plugins/Process/Windows/LocalDebugDelegate.cpp
Zachary Turner dcd80377f3 [ProcessWindows] Implement breakpoint stop / resume on Windows.
This patch implements basic support for stopping at breakpoints
and resuming later.  While a breakpoint is stopped at, LLDB will
cease to process events in the debug loop, effectively suspending
the process, and then resume later when ProcessWindows::DoResume
is called.

As a side effect, this also correctly handles the loader breakpoint
(i.e. the initial stop) so that LLDB goes through the correct state
sequence during the initial process launch.

llvm-svn: 221642
2014-11-11 00:00:14 +00:00

74 lines
1.8 KiB
C++

//===-- 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 "ProcessWindows.h"
using namespace lldb;
using namespace lldb_private;
LocalDebugDelegate::LocalDebugDelegate(ProcessSP process)
: m_process(process)
{
}
void
LocalDebugDelegate::OnExitProcess(const ProcessMessageExitProcess &message)
{
((ProcessWindows &)*m_process).OnExitProcess(message);
}
void
LocalDebugDelegate::OnDebuggerConnected(const ProcessMessageDebuggerConnected &message)
{
((ProcessWindows &)*m_process).OnDebuggerConnected(message);
}
ExceptionResult
LocalDebugDelegate::OnDebugException(const ProcessMessageException &message)
{
return ((ProcessWindows &)*m_process).OnDebugException(message);
}
void
LocalDebugDelegate::OnCreateThread(const ProcessMessageCreateThread &message)
{
((ProcessWindows &)*m_process).OnCreateThread(message);
}
void
LocalDebugDelegate::OnExitThread(const ProcessMessageExitThread &message)
{
((ProcessWindows &)*m_process).OnExitThread(message);
}
void
LocalDebugDelegate::OnLoadDll(const ProcessMessageLoadDll &message)
{
((ProcessWindows &)*m_process).OnLoadDll(message);
}
void
LocalDebugDelegate::OnUnloadDll(const ProcessMessageUnloadDll &message)
{
((ProcessWindows &)*m_process).OnUnloadDll(message);
}
void
LocalDebugDelegate::OnDebugString(const ProcessMessageDebugString &message)
{
((ProcessWindows &)*m_process).OnDebugString(message);
}
void
LocalDebugDelegate::OnDebuggerError(const ProcessMessageDebuggerError &message)
{
((ProcessWindows &)*m_process).OnDebuggerError(message);
}