1 //===-- ThreadGDBRemote.h ---------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef liblldb_ThreadGDBRemote_h_
11 #define liblldb_ThreadGDBRemote_h_
15 #include "lldb/Target/Process.h"
16 #include "lldb/Target/Thread.h"
18 class StringExtractor;
19 class ProcessGDBRemote;
21 class ThreadGDBRemote : public lldb_private::Thread
24 ThreadGDBRemote (lldb_private::Process &process, lldb::tid_t tid);
30 WillResume (lldb::StateType resume_state);
33 RefreshStateAfterStop();
41 virtual lldb::RegisterContextSP
42 GetRegisterContext ();
44 virtual lldb::RegisterContextSP
45 CreateRegisterContextForFrame (lldb_private::StackFrame *frame);
48 Dump (lldb_private::Log *log, uint32_t index);
51 ThreadIDIsValid (lldb::tid_t thread);
54 ShouldStop (bool &step_more);
57 GetBasicInfoAsString ();
60 SetName (const char *name)
63 m_thread_name.assign (name);
65 m_thread_name.clear();
69 GetThreadDispatchQAddr ()
71 return m_thread_dispatch_qaddr;
75 SetThreadDispatchQAddr (lldb::addr_t thread_dispatch_qaddr)
77 m_thread_dispatch_qaddr = thread_dispatch_qaddr;
82 friend class ProcessGDBRemote;
85 PrivateSetRegisterValue (uint32_t reg,
86 StringExtractor &response);
88 //------------------------------------------------------------------
90 //------------------------------------------------------------------
91 std::string m_thread_name;
92 std::string m_dispatch_queue_name;
93 lldb::addr_t m_thread_dispatch_qaddr;
94 //------------------------------------------------------------------
96 //------------------------------------------------------------------
99 SetStopInfoFromPacket (StringExtractor &stop_packet, uint32_t stop_id);
102 CalculateStopInfo ();
107 #endif // liblldb_ThreadGDBRemote_h_