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