1//===-- TargetThreadWindows.h -----------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef liblldb_Plugins_Process_Windows_TargetThreadWindows_H_
10#define liblldb_Plugins_Process_Windows_TargetThreadWindows_H_
11
12//#include "ForwardDecl.h"
13#include "lldb/Host/HostThread.h"
14#include "lldb/Target/Thread.h"
15#include "lldb/lldb-forward.h"
16
17#include "RegisterContextWindows.h"
18
19namespace lldb_private {
20class ProcessWindows;
21class HostThread;
22class StackFrame;
23
24class TargetThreadWindows : public lldb_private::Thread {
25public:
26 TargetThreadWindows(ProcessWindows &process, const HostThread &thread);
27 virtual ~TargetThreadWindows();
28
29 // lldb_private::Thread overrides
30 void RefreshStateAfterStop() override;
31 void WillResume(lldb::StateType resume_state) override;
32 void DidStop() override;
33 lldb::RegisterContextSP GetRegisterContext() override;
34 lldb::RegisterContextSP
35 CreateRegisterContextForFrame(StackFrame *frame) override;
36 bool CalculateStopInfo() override;
37 const char *GetName() override;
38
39 Status DoResume();
40
41 HostThread GetHostThread() const { return m_host_thread; }
42
43private:
44 lldb::RegisterContextSP m_thread_reg_ctx_sp;
45 HostThread m_host_thread;
46 std::string m_name;
47};
48} // namespace lldb_private
49
50#endif
51

source code of lldb/source/Plugins/Process/Windows/Common/TargetThreadWindows.h