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 | const char *GetName() override; |
38 | |
39 | Status DoResume(); |
40 | |
41 | HostThread GetHostThread() const { return m_host_thread; } |
42 | |
43 | private: |
44 | lldb::RegisterContextSP m_thread_reg_ctx_sp; |
45 | HostThread m_host_thread; |
46 | std::string m_name; |
47 | }; |
48 | } // namespace lldb_private |
49 | |
50 | #endif |
51 | |