1 //===-- TargetThreadWindows.h -----------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef liblldb_Plugins_Process_Windows_TargetThreadWindows_H_
11 #define liblldb_Plugins_Process_Windows_TargetThreadWindows_H_
13 //#include "ForwardDecl.h"
14 #include "lldb/Host/HostThread.h"
15 #include "lldb/Target/Thread.h"
16 #include "lldb/lldb-forward.h"
18 #include "RegisterContextWindows.h"
20 namespace lldb_private {
25 class TargetThreadWindows : public lldb_private::Thread {
27 TargetThreadWindows(ProcessWindows &process, const HostThread &thread);
28 virtual ~TargetThreadWindows();
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;
42 HostThread GetHostThread() const { return m_host_thread; }
45 lldb::RegisterContextSP CreateRegisterContextForFrameIndex(uint32_t idx);
47 HostThread m_host_thread;