summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h')
-rw-r--r--lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
index 8d5134a49a4..1b1f173a364 100644
--- a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
+++ b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
@@ -13,14 +13,17 @@
#include "lldb/Utility/Status.h"
#include "lldb/lldb-forward.h"
+#include "llvm/Support/Mutex.h"
+
+#include "IDebugDelegate.h"
#include "Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h"
-#include "ProcessDebugger.h"
namespace lldb_private {
class HostProcess;
+class ProcessWindowsData;
-class ProcessWindows : public Process, public ProcessDebugger {
+class ProcessWindows : public Process, public IDebugDelegate {
public:
// Static functions.
static lldb::ProcessSP CreateInstance(lldb::TargetSP target_sp,
@@ -98,7 +101,19 @@ public:
void OnUnloadDll(lldb::addr_t module_addr) override;
void OnDebugString(const std::string &string) override;
void OnDebuggerError(const Status &error, uint32_t type) override;
+
+private:
+ Status WaitForDebuggerConnection(DebuggerThreadSP debugger,
+ HostProcess &process);
+
+ // These decode the page protection bits.
+ static bool IsPageReadable(uint32_t protect);
+ static bool IsPageWritable(uint32_t protect);
+ static bool IsPageExecutable(uint32_t protect);
+
+ llvm::sys::Mutex m_mutex;
+ std::unique_ptr<ProcessWindowsData> m_session_data;
};
-} // namespace lldb_private
+}
#endif // liblldb_Plugins_Process_Windows_Common_ProcessWindows_H_
OpenPOWER on IntegriCloud