• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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