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
74 lines
1.8 KiB
C++
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);
|
|
}
|