1 //===-- ThreadMemory.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_ThreadMemory_h_ 11 #define liblldb_ThreadMemory_h_ 12 13 #include "lldb/Target/Thread.h" 14 15 class ThreadMemory : 16 public lldb_private::Thread 17 { 18 public: 19 20 ThreadMemory (lldb_private::Process &process, 21 lldb::tid_t tid, 22 const lldb::ValueObjectSP &thread_info_valobj_sp); 23 24 virtual 25 ~ThreadMemory(); 26 27 //------------------------------------------------------------------ 28 // lldb_private::Thread methods 29 //------------------------------------------------------------------ 30 virtual void 31 RefreshStateAfterStop(); 32 33 virtual lldb::RegisterContextSP 34 GetRegisterContext (); 35 36 virtual lldb::RegisterContextSP 37 CreateRegisterContextForFrame (lldb_private::StackFrame *frame); 38 39 virtual lldb::StopInfoSP 40 GetPrivateStopReason (); 41 42 virtual bool 43 WillResume (lldb::StateType resume_state); 44 45 lldb::ValueObjectSP & 46 GetValueObject () 47 { 48 return m_thread_info_valobj_sp; 49 } 50 51 protected: 52 //------------------------------------------------------------------ 53 // For ThreadMemory and subclasses 54 //------------------------------------------------------------------ 55 lldb::ValueObjectSP m_thread_info_valobj_sp; 56 57 private: 58 //------------------------------------------------------------------ 59 // For ThreadMemory only 60 //------------------------------------------------------------------ 61 DISALLOW_COPY_AND_ASSIGN (ThreadMemory); 62 }; 63 64 #endif // liblldb_ThreadMemory_h_ 65