]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - source/Plugins/Process/Windows/Live/TargetThreadWindowsLive.h
Vendor import of lldb release_39 branch r287912:
[FreeBSD/FreeBSD.git] / source / Plugins / Process / Windows / Live / TargetThreadWindowsLive.h
1 //===-- TargetThreadWindowsLive.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_TargetThreadWindowsLive_H_
11 #define liblldb_Plugins_Process_Windows_TargetThreadWindowsLive_H_
12
13 #include "lldb/lldb-forward.h"
14 #include "lldb/Host/HostThread.h"
15 #include "lldb/Target/Thread.h"
16
17 #include "Plugins/Process/Windows/Common/TargetThreadWindows.h"
18
19 namespace lldb_private
20 {
21 class ProcessWindows;
22 class HostThread;
23 class StackFrame;
24
25 class TargetThreadWindowsLive : public lldb_private::TargetThreadWindows
26 {
27   public:
28     TargetThreadWindowsLive(ProcessWindows &process, const HostThread &thread);
29     virtual ~TargetThreadWindowsLive();
30
31     // lldb_private::Thread overrides
32     void RefreshStateAfterStop() override;
33     void WillResume(lldb::StateType resume_state) override;
34     void DidStop() override;
35     lldb::RegisterContextSP GetRegisterContext() override;
36     lldb::RegisterContextSP CreateRegisterContextForFrame(StackFrame *frame) override;
37     bool CalculateStopInfo() override;
38     Unwind *GetUnwinder() override;
39
40     bool DoResume();
41
42     HostThread
43     GetHostThread() const
44     {
45         return m_host_thread;
46     }
47
48   private:
49     lldb::RegisterContextSP CreateRegisterContextForFrameIndex(uint32_t idx);
50
51     HostThread m_host_thread;
52 };
53 }
54
55 #endif