]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.h
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / source / Plugins / Process / minidump / ThreadMinidump.h
1 //===-- ThreadMinidump.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_ThreadMinidump_h_
11 #define liblldb_ThreadMinidump_h_
12
13 #include "MinidumpTypes.h"
14
15 #include "lldb/Target/Thread.h"
16
17
18 namespace lldb_private {
19
20 namespace minidump {
21
22 class ThreadMinidump : public Thread {
23 public:
24   ThreadMinidump(Process &process, const MinidumpThread &td,
25                  llvm::ArrayRef<uint8_t> gpregset_data);
26
27   ~ThreadMinidump() override;
28
29   void RefreshStateAfterStop() override;
30
31   lldb::RegisterContextSP GetRegisterContext() override;
32
33   lldb::RegisterContextSP
34   CreateRegisterContextForFrame(StackFrame *frame) override;
35
36 protected:
37   lldb::RegisterContextSP m_thread_reg_ctx_sp;
38   llvm::ArrayRef<uint8_t> m_gpregset_data;
39
40   bool CalculateStopInfo() override;
41 };
42
43 } // namespace minidump
44 } // namespace lldb_private
45
46 #endif // liblldb_ThreadMinidump_h_