blob: 7b93952c01a96ad7f7b3f15ad920bcbae5a7506d [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:
Adrian McCarthy4ad5def2016-11-23 16:26:37 +000045 lldb::RegisterContextSP CreateRegisterContextForFrameIndex(uint32_t idx);
46
Kate Stoneb9c1b512016-09-06 20:57:50 +000047 HostThread m_host_thread;
Adrian McCarthy18a9135d2015-10-28 18:21:45 +000048};
49}
50
51#endif