When processes are launched for debugging on Windows now, LLDB will detect changes such as DLL loads and unloads, breakpoints, thread creation and deletion, etc. These notifications are not yet propagated to LLDB in a way that LLDB understands what is happening with the process. This only picks up the notifications from the OS in a way that they can be sent to LLDB with subsequent patches. Reviewed by: Scott Graham Differential Revision: http://reviews.llvm.org/D6037 llvm-svn: 221207
41 lines
1.4 KiB
C++
41 lines
1.4 KiB
C++
//===-- DebugProcessLauncher.h ----------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef liblldb_Plugins_Process_Windows_DebugProcessLauncher_H_
|
|
#define liblldb_Plugins_Process_Windows_DebugProcessLauncher_H_
|
|
|
|
#include "lldb/Host/ProcessLauncher.h"
|
|
#include "lldb/lldb-forward.h"
|
|
|
|
namespace lldb_private
|
|
{
|
|
|
|
//----------------------------------------------------------------------
|
|
// DebugProcessLauncher
|
|
//
|
|
// DebugProcessLauncher launches a process for debugging on Windows. On
|
|
// Windows, the debug loop that detects events and status changes in a debugged
|
|
// process must run on the same thread that calls CreateProcess. So
|
|
// DebugProcessLauncher is built with this in mind. It queues a request to the
|
|
// DebugDriverThread to launch a new process, then waits for a notification from
|
|
// that thread that the launch is complete.
|
|
//----------------------------------------------------------------------
|
|
class DebugProcessLauncher : public ProcessLauncher
|
|
{
|
|
public:
|
|
explicit DebugProcessLauncher(lldb::ProcessSP process_plugin);
|
|
virtual HostProcess LaunchProcess(const ProcessLaunchInfo &launch_info, Error &error);
|
|
|
|
private:
|
|
lldb::ProcessSP m_process_plugin;
|
|
};
|
|
}
|
|
|
|
#endif
|