blob: 952c0f55b57f3c6cf0697d7bee8b1542b654470b [file] [log] [blame]
Adrian McCarthy18a9135d2015-10-28 18:21:45 +00001//===-- 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"
Adrian McCarthy18a9135d2015-10-28 18:21:45 +000014#include "lldb/Host/HostThread.h"
15#include "lldb/Target/Thread.h"
Kate Stoneb9c1b512016-09-06 20:57:50 +000016#include "lldb/lldb-forward.h"
Adrian McCarthy18a9135d2015-10-28 18:21:45 +000017
Adrian McCarthy4ad5def2016-11-23 16:26:37 +000018#include "RegisterContextWindows.h"
19
Kate Stoneb9c1b512016-09-06 20:57:50 +000020namespace lldb_private {
Adrian McCarthy18a9135d2015-10-28 18:21:45 +000021class ProcessWindows;
22class HostThread;
23class StackFrame;
24
Kate Stoneb9c1b512016-09-06 20:57:50 +000025class TargetThreadWindows : public lldb_private::Thread {
26public:
27 TargetThreadWindows(ProcessWindows &process, const HostThread &thread);
28 virtual ~TargetThreadWindows();
Adrian McCarthy18a9135d2015-10-28 18:21:45 +000029
Kate Stoneb9c1b512016-09-06 20:57:50 +000030 // lldb_private::Thread overrides
31 void RefreshStateAfterStop() override;
32 void WillResume(lldb::StateType resume_state) override;
33 void DidStop() override;
Adrian McCarthy4ad5def2016-11-23 16:26:37 +000034 lldb::RegisterContextSP GetRegisterContext() override;
35 lldb::RegisterContextSP
36 CreateRegisterContextForFrame(StackFrame *frame) override;
Kate Stoneb9c1b512016-09-06 20:57:50 +000037 bool CalculateStopInfo() override;
38 Unwind *GetUnwinder() override;
Adrian McCarthy18a9135d2015-10-28 18:21:45 +000039
Stella Stamenova0fd67b52018-05-17 21:34:24 +000040 Status DoResume();
Adrian McCarthy18a9135d2015-10-28 18:21:45 +000041
Kate Stoneb9c1b512016-09-06 20:57:50 +000042 HostThread GetHostThread() const { return m_host_thread; }
Adrian McCarthy18a9135d2015-10-28 18:21:45 +000043
Kate Stoneb9c1b512016-09-06 20:57:50 +000044private:
Stella Stamenova45d81342018-07-10 22:05:33 +000045 lldb::RegisterContextSP m_thread_reg_ctx_sp;
Kate Stoneb9c1b512016-09-06 20:57:50 +000046 HostThread m_host_thread;
Adrian McCarthy18a9135d2015-10-28 18:21:45 +000047};
Stella Stamenova45d81342018-07-10 22:05:33 +000048} // namespace lldb_private
Adrian McCarthy18a9135d2015-10-28 18:21:45 +000049
50#endif