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_
47