blob: 15262b9e94239f4f6de7c49bc0c48a72817a80a9 [file] [log] [blame]
Adrian McCarthy18a9135d2015-10-28 18:21:45 +00001//===-- 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
19namespace lldb_private
20{
21class ProcessWindows;
22class HostThread;
23class StackFrame;
24
25class 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