]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - source/Plugins/Process/Windows/Common/TargetThreadWindows.h
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / source / Plugins / Process / Windows / Common / TargetThreadWindows.h
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   bool DoResume();
41
42   HostThread GetHostThread() const { return m_host_thread; }
43
44 private:
45   lldb::RegisterContextSP CreateRegisterContextForFrameIndex(uint32_t idx);
46
47   HostThread m_host_thread;
48 };
49 }
50
51 #endif