1 //===-- TargetThreadWindows.h -----------------------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef liblldb_Plugins_Process_Windows_TargetThreadWindows_H_ 10 #define liblldb_Plugins_Process_Windows_TargetThreadWindows_H_ 11 12 //#include "ForwardDecl.h" 13 #include "lldb/Host/HostThread.h" 14 #include "lldb/Target/Thread.h" 15 #include "lldb/lldb-forward.h" 16 17 #include "RegisterContextWindows.h" 18 19 namespace lldb_private { 20 class ProcessWindows; 21 class HostThread; 22 class StackFrame; 23 24 class TargetThreadWindows : public lldb_private::Thread { 25 public: 26 TargetThreadWindows(ProcessWindows &process, const HostThread &thread); 27 virtual ~TargetThreadWindows(); 28 29 // lldb_private::Thread overrides 30 void RefreshStateAfterStop() override; 31 void WillResume(lldb::StateType resume_state) override; 32 void DidStop() override; 33 lldb::RegisterContextSP GetRegisterContext() override; 34 lldb::RegisterContextSP 35 CreateRegisterContextForFrame(StackFrame *frame) override; 36 bool CalculateStopInfo() override; 37 38 Status DoResume(); 39 GetHostThread()40 HostThread GetHostThread() const { return m_host_thread; } 41 42 private: 43 lldb::RegisterContextSP m_thread_reg_ctx_sp; 44 HostThread m_host_thread; 45 }; 46 } // namespace lldb_private 47 48 #endif 49