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::queue_id_t
44 virtual lldb::RegisterContextSP
45 GetRegisterContext ();
47 virtual lldb::RegisterContextSP
48 CreateRegisterContextForFrame (lldb_private::StackFrame *frame);
51 Dump (lldb_private::Log *log, uint32_t index);
54 ThreadIDIsValid (lldb::tid_t thread);
57 ShouldStop (bool &step_more);
60 GetBasicInfoAsString ();
63 SetName (const char *name)
66 m_thread_name.assign (name);
68 m_thread_name.clear();
72 GetThreadDispatchQAddr ()
74 return m_thread_dispatch_qaddr;
78 SetThreadDispatchQAddr (lldb::addr_t thread_dispatch_qaddr)
80 m_thread_dispatch_qaddr = thread_dispatch_qaddr;
85 friend class ProcessGDBRemote;
88 PrivateSetRegisterValue (uint32_t reg,
89 StringExtractor &response);
91 //------------------------------------------------------------------
93 //------------------------------------------------------------------
94 std::string m_thread_name;
95 std::string m_dispatch_queue_name;
96 lldb::addr_t m_thread_dispatch_qaddr;
97 //------------------------------------------------------------------
99 //------------------------------------------------------------------
102 SetStopInfoFromPacket (StringExtractor &stop_packet, uint32_t stop_id);
105 CalculateStopInfo ();
110 #endif // liblldb_ThreadGDBRemote_h_