1 //===-- TargetThreadWindows.h -----------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef liblldb_Plugins_Process_Windows_TargetThreadWindows_H_ 11 #define liblldb_Plugins_Process_Windows_TargetThreadWindows_H_ 12 13 //#include "ForwardDecl.h" 14 #include "lldb/Host/HostThread.h" 15 #include "lldb/Target/Thread.h" 16 #include "lldb/lldb-forward.h" 17 18 #include "RegisterContextWindows.h" 19 20 namespace lldb_private { 21 class ProcessWindows; 22 class HostThread; 23 class StackFrame; 24 25 class TargetThreadWindows : public lldb_private::Thread { 26 public: 27 TargetThreadWindows(ProcessWindows &process, const HostThread &thread); 28 virtual ~TargetThreadWindows(); 29 30 // lldb_private::Thread overrides 31 void RefreshStateAfterStop() override; 32 void WillResume(lldb::StateType resume_state) override; 33 void DidStop() override; 34 lldb::RegisterContextSP GetRegisterContext() override; 35 lldb::RegisterContextSP 36 CreateRegisterContextForFrame(StackFrame *frame) override; 37 bool CalculateStopInfo() override; 38 Unwind *GetUnwinder() override; 39 40 Status DoResume(); 41 42 HostThread GetHostThread() const { return m_host_thread; } 43 44 private: 45 lldb::RegisterContextSP m_thread_reg_ctx_sp; 46 HostThread m_host_thread; 47 }; 48 } // namespace lldb_private 49 50 #endif 51