LLDB  mainline
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS Class Reference

#include <GDBRemoteCommunicationServerLLGS.h>

Inheritance diagram for lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS:
Collaboration graph
[legend]

Public Member Functions

 GDBRemoteCommunicationServerLLGS (MainLoop &mainloop, const NativeProcessProtocol::Factory &process_factory)
 
void SetLaunchInfo (const ProcessLaunchInfo &info)
 
Status LaunchProcess () override
 Launch a process with the current launch settings. More...
 
Status AttachToProcess (lldb::pid_t pid)
 Attach to a process. More...
 
Status AttachWaitProcess (llvm::StringRef process_name, bool include_existing)
 Wait to attach to a process with a given name. More...
 
void InitializeDelegate (NativeProcessProtocol *process) override
 
void ProcessStateChanged (NativeProcessProtocol *process, lldb::StateType state) override
 
void DidExec (NativeProcessProtocol *process) override
 
void NewSubprocess (NativeProcessProtocol *parent_process, std::unique_ptr< NativeProcessProtocol > child_process) override
 
Status InitializeConnection (std::unique_ptr< Connection > connection)
 
- Public Member Functions inherited from lldb_private::process_gdb_remote::GDBRemoteCommunicationServerCommon
 GDBRemoteCommunicationServerCommon (const char *comm_name, const char *listener_name)
 
 ~GDBRemoteCommunicationServerCommon () override
 
- Public Member Functions inherited from lldb_private::process_gdb_remote::GDBRemoteCommunicationServer
 GDBRemoteCommunicationServer (const char *comm_name, const char *listener_name)
 
 ~GDBRemoteCommunicationServer () override
 
void RegisterPacketHandler (StringExtractorGDBRemote::ServerPacketType packet_type, PacketHandler handler)
 
PacketResult GetPacketAndSendResponse (Timeout< std::micro > timeout, Status &error, bool &interrupt, bool &quit)
 
- Public Member Functions inherited from lldb_private::process_gdb_remote::GDBRemoteCommunication
 GDBRemoteCommunication (const char *comm_name, const char *listener_name)
 
 ~GDBRemoteCommunication () override
 
PacketResult GetAck ()
 
size_t SendAck ()
 
size_t SendNack ()
 
char CalculcateChecksum (llvm::StringRef payload)
 
PacketType CheckForPacket (const uint8_t *src, size_t src_len, StringExtractorGDBRemote &packet)
 
bool GetSendAcks ()
 
std::chrono::seconds SetPacketTimeout (std::chrono::seconds packet_timeout)
 
std::chrono::seconds GetPacketTimeout () const
 
Status StartDebugserverProcess (const char *url, Platform *platform, ProcessLaunchInfo &launch_info, uint16_t *port, const Args *inferior_args, int pass_comm_fd)
 
void DumpHistory (Stream &strm)
 
void SetPacketRecorder (repro::PacketRecorder *recorder)
 
- Public Member Functions inherited from lldb_private::Communication
 FLAGS_ANONYMOUS_ENUM ()
 
 Communication (const char *broadcaster_name)
 Construct the Communication object with the specified name for the Broadcaster that this object inherits from. More...
 
 ~Communication () override
 Destructor. More...
 
void Clear ()
 
lldb::ConnectionStatus Connect (const char *url, Status *error_ptr)
 Connect using the current connection by passing url to its connect function. More...
 
lldb::ConnectionStatus Disconnect (Status *error_ptr=nullptr)
 Disconnect the communications connection if one is currently connected. More...
 
bool IsConnected () const
 Check if the connection is valid. More...
 
bool HasConnection () const
 
lldb_private::ConnectionGetConnection ()
 
size_t Read (void *dst, size_t dst_len, const Timeout< std::micro > &timeout, lldb::ConnectionStatus &status, Status *error_ptr)
 Read bytes from the current connection. More...
 
size_t Write (const void *src, size_t src_len, lldb::ConnectionStatus &status, Status *error_ptr)
 The actual write function that attempts to write to the communications protocol. More...
 
size_t WriteAll (const void *src, size_t src_len, lldb::ConnectionStatus &status, Status *error_ptr)
 Repeatedly attempt writing until either src_len bytes are written or a permanent failure occurs. More...
 
void SetConnection (std::unique_ptr< Connection > connection)
 Sets the connection that it to be used by this class. More...
 
virtual bool StartReadThread (Status *error_ptr=nullptr)
 Starts a read thread whose sole purpose it to read bytes from the current connection. More...
 
virtual bool StopReadThread (Status *error_ptr=nullptr)
 Stops the read thread by cancelling it. More...
 
virtual bool JoinReadThread (Status *error_ptr=nullptr)
 
bool ReadThreadIsRunning ()
 Checks if there is a currently running read thread. More...
 
void SetReadThreadBytesReceivedCallback (ReadThreadBytesReceived callback, void *callback_baton)
 
void SynchronizeWithReadThread ()
 Wait for the read thread to process all outstanding data. More...
 
bool GetCloseOnEOF () const
 
void SetCloseOnEOF (bool b)
 
ConstStringGetBroadcasterClass () const override
 This needs to be filled in if you are going to register the broadcaster with the broadcaster manager and do broadcaster class matching. More...
 
- Public Member Functions inherited from lldb_private::Broadcaster
 Broadcaster (lldb::BroadcasterManagerSP manager_sp, const char *name)
 Construct with a broadcaster with a name. More...
 
virtual ~Broadcaster ()
 Destructor. More...
 
void CheckInWithManager ()
 
void BroadcastEvent (lldb::EventSP &event_sp)
 Broadcast an event which has no associated data. More...
 
void BroadcastEventIfUnique (lldb::EventSP &event_sp)
 
void BroadcastEvent (uint32_t event_type, const lldb::EventDataSP &event_data_sp)
 
void BroadcastEvent (uint32_t event_type, EventData *event_data=nullptr)
 
void BroadcastEventIfUnique (uint32_t event_type, EventData *event_data=nullptr)
 
void Clear ()
 
virtual void AddInitialEventsToListener (const lldb::ListenerSP &listener_sp, uint32_t requested_events)
 
uint32_t AddListener (const lldb::ListenerSP &listener_sp, uint32_t event_mask)
 Listen for any events specified by event_mask. More...
 
ConstString GetBroadcasterName ()
 Get the NULL terminated C string name of this Broadcaster object. More...
 
bool GetEventNames (Stream &s, const uint32_t event_mask, bool prefix_with_broadcaster_name) const
 Get the event name(s) for one or more event bits. More...
 
void SetEventName (uint32_t event_mask, const char *name)
 Set the name for an event bit. More...
 
const char * GetEventName (uint32_t event_mask) const
 
bool EventTypeHasListeners (uint32_t event_type)
 
bool RemoveListener (const lldb::ListenerSP &listener_sp, uint32_t event_mask=UINT32_MAX)
 Removes a Listener from this broadcasters list and frees the event bits specified by event_mask that were previously acquired by listener (assuming listener was listening to this object) for other listener objects to use. More...
 
bool HijackBroadcaster (const lldb::ListenerSP &listener_sp, uint32_t event_mask=UINT32_MAX)
 Provides a simple mechanism to temporarily redirect events from broadcaster. More...
 
bool IsHijackedForEvent (uint32_t event_mask)
 
void RestoreBroadcaster ()
 Restore the state of the Broadcaster from a previous hijack attempt. More...
 
lldb::BroadcasterManagerSP GetManager ()
 
- Public Member Functions inherited from lldb_private::NativeProcessProtocol::NativeDelegate
virtual ~NativeDelegate ()=default
 

Protected Member Functions

PacketResult SendONotification (const char *buffer, uint32_t len)
 
PacketResult SendWResponse (NativeProcessProtocol *process)
 
PacketResult SendStopReplyPacketForThread (lldb::tid_t tid)
 
PacketResult SendStopReasonForState (lldb::StateType process_state)
 
PacketResult Handle_k (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qProcessInfo (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qC (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QSetDisableASLR (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QSetWorkingDir (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qGetWorkingDir (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QThreadSuffixSupported (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QListThreadsInStopReply (StringExtractorGDBRemote &packet)
 
PacketResult Handle_C (StringExtractorGDBRemote &packet)
 
PacketResult Handle_c (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vCont (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vCont_actions (StringExtractorGDBRemote &packet)
 
PacketResult Handle_stop_reason (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qRegisterInfo (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qfThreadInfo (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qsThreadInfo (StringExtractorGDBRemote &packet)
 
PacketResult Handle_p (StringExtractorGDBRemote &packet)
 
PacketResult Handle_P (StringExtractorGDBRemote &packet)
 
PacketResult Handle_H (StringExtractorGDBRemote &packet)
 
PacketResult Handle_I (StringExtractorGDBRemote &packet)
 
PacketResult Handle_interrupt (StringExtractorGDBRemote &packet)
 
PacketResult Handle_memory_read (StringExtractorGDBRemote &packet)
 
PacketResult Handle_M (StringExtractorGDBRemote &packet)
 
PacketResult Handle__M (StringExtractorGDBRemote &packet)
 
PacketResult Handle__m (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qMemoryRegionInfoSupported (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qMemoryRegionInfo (StringExtractorGDBRemote &packet)
 
PacketResult Handle_Z (StringExtractorGDBRemote &packet)
 
PacketResult Handle_z (StringExtractorGDBRemote &packet)
 
PacketResult Handle_s (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qXfer (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QSaveRegisterState (StringExtractorGDBRemote &packet)
 
PacketResult Handle_jLLDBTraceSupported (StringExtractorGDBRemote &packet)
 
PacketResult Handle_jLLDBTraceStart (StringExtractorGDBRemote &packet)
 
PacketResult Handle_jLLDBTraceStop (StringExtractorGDBRemote &packet)
 
PacketResult Handle_jLLDBTraceGetState (StringExtractorGDBRemote &packet)
 
PacketResult Handle_jLLDBTraceGetBinaryData (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QRestoreRegisterState (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vAttach (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vAttachWait (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qVAttachOrWaitSupported (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vAttachOrWait (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vRun (StringExtractorGDBRemote &packet)
 
PacketResult Handle_D (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qThreadStopInfo (StringExtractorGDBRemote &packet)
 
PacketResult Handle_jThreadsInfo (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qWatchpointSupportInfo (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qFileLoadAddress (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QPassSignals (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qSaveCore (StringExtractorGDBRemote &packet)
 
PacketResult Handle_g (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qMemTags (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QMemTags (StringExtractorGDBRemote &packet)
 
void SetCurrentThreadID (lldb::tid_t tid)
 
lldb::tid_t GetCurrentThreadID () const
 
void SetContinueThreadID (lldb::tid_t tid)
 
lldb::tid_t GetContinueThreadID () const
 
Status SetSTDIOFileDescriptor (int fd)
 
FileSpec FindModuleFile (const std::string &module_path, const ArchSpec &arch) override
 
llvm::Expected< std::unique_ptr< llvm::MemoryBuffer > > ReadXferObject (llvm::StringRef object, llvm::StringRef annex)
 
virtual std::vector< std::stringHandleFeatures (const llvm::ArrayRef< llvm::StringRef > client_features) override
 
- Protected Member Functions inherited from lldb_private::process_gdb_remote::GDBRemoteCommunicationServerCommon
PacketResult Handle_A (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qHostInfo (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qProcessInfoPID (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qfProcessInfo (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qsProcessInfo (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qUserName (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qGroupName (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qSpeedTest (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vFile_Open (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vFile_Close (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vFile_pRead (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vFile_pWrite (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vFile_Size (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vFile_Mode (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vFile_Exists (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vFile_symlink (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vFile_unlink (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vFile_FStat (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vFile_Stat (StringExtractorGDBRemote &packet)
 
PacketResult Handle_vFile_MD5 (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qEcho (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qModuleInfo (StringExtractorGDBRemote &packet)
 
PacketResult Handle_jModulesInfo (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qPlatform_shell (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qPlatform_mkdir (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qPlatform_chmod (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qSupported (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QSetDetachOnError (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QStartNoAckMode (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QSetSTDIN (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QSetSTDOUT (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QSetSTDERR (StringExtractorGDBRemote &packet)
 
PacketResult Handle_qLaunchSuccess (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QEnvironment (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QEnvironmentHexEncoded (StringExtractorGDBRemote &packet)
 
PacketResult Handle_QLaunchArch (StringExtractorGDBRemote &packet)
 
template<typename T >
void RegisterMemberFunctionHandler (StringExtractorGDBRemote::ServerPacketType packet_type, PacketResult(T::*handler)(StringExtractorGDBRemote &packet))
 
- Protected Member Functions inherited from lldb_private::process_gdb_remote::GDBRemoteCommunicationServer
PacketResult Handle_QErrorStringEnable (StringExtractorGDBRemote &packet)
 
PacketResult SendErrorResponse (const Status &error)
 
PacketResult SendErrorResponse (llvm::Error error)
 
PacketResult SendUnimplementedResponse (const char *packet)
 
PacketResult SendErrorResponse (uint8_t error)
 
PacketResult SendIllFormedResponse (const StringExtractorGDBRemote &packet, const char *error_message)
 
PacketResult SendOKResponse ()
 
PacketResult SendJSONResponse (const llvm::json::Value &value)
 Serialize and send a JSON object response. More...
 
PacketResult SendJSONResponse (llvm::Expected< llvm::json::Value > value)
 Serialize and send a JSON object response, or respond with an error if the input object is an llvm::Error. More...
 
- Protected Member Functions inherited from lldb_private::process_gdb_remote::GDBRemoteCommunication
PacketResult SendPacketNoLock (llvm::StringRef payload)
 
PacketResult SendRawPacketNoLock (llvm::StringRef payload, bool skip_ack=false)
 
PacketResult ReadPacket (StringExtractorGDBRemote &response, Timeout< std::micro > timeout, bool sync_on_timeout)
 
PacketResult ReadPacketWithOutputSupport (StringExtractorGDBRemote &response, Timeout< std::micro > timeout, bool sync_on_timeout, llvm::function_ref< void(llvm::StringRef)> output_callback)
 
PacketResult WaitForPacketNoLock (StringExtractorGDBRemote &response, Timeout< std::micro > timeout, bool sync_on_timeout)
 
bool CompressionIsEnabled ()
 
bool DecompressPacket ()
 
Status StartListenThread (const char *hostname="127.0.0.1", uint16_t port=0)
 
bool JoinListenThread ()
 
- Protected Member Functions inherited from lldb_private::Communication
size_t ReadFromConnection (void *dst, size_t dst_len, const Timeout< std::micro > &timeout, lldb::ConnectionStatus &status, Status *error_ptr)
 
virtual void AppendBytesToCache (const uint8_t *src, size_t src_len, bool broadcast, lldb::ConnectionStatus status)
 Append new bytes that get read from the read thread into the internal object byte cache. More...
 
size_t GetCachedBytes (void *dst, size_t dst_len)
 Get any available bytes from our data cache. More...
 
- Protected Member Functions inherited from lldb_private::Broadcaster
BroadcasterImplSP GetBroadcasterImpl ()
 
const char * GetHijackingListenerName ()
 

Static Protected Member Functions

static std::string XMLEncodeAttributeValue (llvm::StringRef value)
 
- Static Protected Member Functions inherited from lldb_private::process_gdb_remote::GDBRemoteCommunicationServerCommon
static void CreateProcessInfoResponse (const ProcessInstanceInfo &proc_info, StreamString &response)
 
static void CreateProcessInfoResponse_DebugServerStyle (const ProcessInstanceInfo &proc_info, StreamString &response)
 
- Static Protected Member Functions inherited from lldb_private::process_gdb_remote::GDBRemoteCommunication
static lldb::thread_result_t ListenThread (lldb::thread_arg_t arg)
 

Protected Attributes

MainLoopm_mainloop
 
MainLoop::ReadHandleUP m_network_handle_up
 
const NativeProcessProtocol::Factorym_process_factory
 
lldb::tid_t m_current_tid = LLDB_INVALID_THREAD_ID
 
lldb::tid_t m_continue_tid = LLDB_INVALID_THREAD_ID
 
NativeProcessProtocolm_current_process
 
NativeProcessProtocolm_continue_process
 
std::recursive_mutex m_debugged_process_mutex
 
std::unordered_map< lldb::pid_t, std::unique_ptr< NativeProcessProtocol > > m_debugged_processes
 
Communication m_stdio_communication
 
MainLoop::ReadHandleUP m_stdio_handle_up
 
lldb::StateType m_inferior_prev_state = lldb::StateType::eStateInvalid
 
llvm::StringMap< std::unique_ptr< llvm::MemoryBuffer > > m_xfer_buffer_map
 
std::mutex m_saved_registers_mutex
 
std::unordered_map< uint32_t, lldb::DataBufferSP > m_saved_registers_map
 
uint32_t m_next_saved_registers_id = 1
 
bool m_thread_suffix_supported = false
 
bool m_list_threads_in_stop_reply = false
 
NativeProcessProtocol::Extension m_extensions_supported = {}
 
- Protected Attributes inherited from lldb_private::process_gdb_remote::GDBRemoteCommunicationServerCommon
ProcessLaunchInfo m_process_launch_info
 
Status m_process_launch_error
 
ProcessInstanceInfoList m_proc_infos
 
uint32_t m_proc_infos_index
 
- Protected Attributes inherited from lldb_private::process_gdb_remote::GDBRemoteCommunicationServer
std::map< StringExtractorGDBRemote::ServerPacketType, PacketHandlerm_packet_handlers
 
bool m_exit_now
 
bool m_send_error_strings = false
 
- Protected Attributes inherited from lldb_private::process_gdb_remote::GDBRemoteCommunication
std::chrono::seconds m_packet_timeout
 
uint32_t m_echo_number
 
LazyBool m_supports_qEcho
 
GDBRemoteCommunicationHistory m_history
 
bool m_send_acks
 
bool m_is_platform
 
CompressionType m_compression_type
 
- Protected Attributes inherited from lldb_private::Communication
lldb::ConnectionSP m_connection_sp
 The connection that is current in use by this communications class. More...
 
HostThread m_read_thread
 The read thread handle in case we need to cancel the thread. More...
 
std::atomic< bool > m_read_thread_enabled
 
std::atomic< bool > m_read_thread_did_exit
 
std::string m_bytes
 A buffer to cache bytes read in the ReadThread function. More...
 
std::recursive_mutex m_bytes_mutex
 A mutex to protect multi-threaded access to the cached bytes. More...
 
std::mutex m_write_mutex
 Don't let multiple threads write at the same time... More...
 
std::mutex m_synchronize_mutex
 
ReadThreadBytesReceived m_callback
 
void * m_callback_baton
 
bool m_close_on_eof
 

Private Member Functions

llvm::Expected< std::unique_ptr< llvm::MemoryBuffer > > BuildTargetXml ()
 
void HandleInferiorState_Exited (NativeProcessProtocol *process)
 
void HandleInferiorState_Stopped (NativeProcessProtocol *process)
 
NativeThreadProtocolGetThreadFromSuffix (StringExtractorGDBRemote &packet)
 
uint32_t GetNextSavedRegistersID ()
 
void MaybeCloseInferiorTerminalConnection ()
 
void ClearProcessSpecificData ()
 
void RegisterPacketHandlers ()
 
void DataAvailableCallback ()
 
void SendProcessOutput ()
 
void StartSTDIOForwarding ()
 
void StopSTDIOForwarding ()
 
llvm::Expected< lldb::tid_tReadTid (StringExtractorGDBRemote &packet, bool allow_all, lldb::pid_t default_pid)
 
void SetEnabledExtensions (NativeProcessProtocol &process)
 
 GDBRemoteCommunicationServerLLGS (const GDBRemoteCommunicationServerLLGS &)=delete
 
const GDBRemoteCommunicationServerLLGSoperator= (const GDBRemoteCommunicationServerLLGS &)=delete
 

Additional Inherited Members

- Public Types inherited from lldb_private::process_gdb_remote::GDBRemoteCommunicationServer
using PacketHandler = std::function< PacketResult(StringExtractorGDBRemote &packet, Status &error, bool &interrupt, bool &quit)>
 
- Public Types inherited from lldb_private::process_gdb_remote::GDBRemoteCommunication
enum  { eBroadcastBitRunPacketSent = kLoUserBroadcastBit }
 
enum  PacketType { PacketType::Invalid = 0, PacketType::Standard, PacketType::Notify }
 
enum  PacketResult {
  PacketResult::Success = 0, PacketResult::ErrorSendFailed, PacketResult::ErrorSendAck, PacketResult::ErrorReplyFailed,
  PacketResult::ErrorReplyTimeout, PacketResult::ErrorReplyInvalid, PacketResult::ErrorReplyAck, PacketResult::ErrorDisconnected,
  PacketResult::ErrorNoSequenceLock
}
 
- Public Types inherited from lldb_private::Communication
typedef void(* ReadThreadBytesReceived) (void *baton, const void *src, size_t src_len)
 
- Static Public Member Functions inherited from lldb_private::process_gdb_remote::GDBRemoteCommunication
static llvm::Error ConnectLocally (GDBRemoteCommunication &client, GDBRemoteCommunication &server)
 
static std::string ExpandRLE (std::string)
 Expand GDB run-length encoding. More...
 
- Static Public Member Functions inherited from lldb_private::Communication
static lldb::thread_result_t ReadThread (lldb::thread_arg_t comm_ptr)
 The static read thread function. More...
 
static std::string ConnectionStatusAsString (lldb::ConnectionStatus status)
 
static ConstStringGetStaticBroadcasterClass ()
 
- Protected Types inherited from lldb_private::Broadcaster
typedef std::shared_ptr< BroadcasterImplBroadcasterImplSP
 
typedef std::weak_ptr< BroadcasterImplBroadcasterImplWP
 

Detailed Description

Definition at line 30 of file GDBRemoteCommunicationServerLLGS.h.

Constructor & Destructor Documentation

◆ GDBRemoteCommunicationServerLLGS() [1/2]

GDBRemoteCommunicationServerLLGS::GDBRemoteCommunicationServerLLGS ( MainLoop mainloop,
const NativeProcessProtocol::Factory process_factory 
)

Definition at line 70 of file GDBRemoteCommunicationServerLLGS.cpp.

References RegisterPacketHandlers().

◆ GDBRemoteCommunicationServerLLGS() [2/2]

lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::GDBRemoteCommunicationServerLLGS ( const GDBRemoteCommunicationServerLLGS )
privatedelete

Member Function Documentation

◆ AttachToProcess()

Status GDBRemoteCommunicationServerLLGS::AttachToProcess ( lldb::pid_t  pid)

◆ AttachWaitProcess()

Status GDBRemoteCommunicationServerLLGS::AttachWaitProcess ( llvm::StringRef  process_name,
bool  include_existing 
)

Wait to attach to a process with a given name.

This method supports waiting for the next instance of a process with a given name and attaching llgs to that via the configured Platform.

Returns
An Status object indicating the success or failure of the attach operation.

Definition at line 371 of file GDBRemoteCommunicationServerLLGS.cpp.

References AttachToProcess(), lldb_private::Equals, error(), lldb_private::Host::FindProcesses(), lldb_private::Stream::Format(), lldb_private::ProcessInfo::GetExecutableFile(), lldb_private::GetLogIfAnyCategoriesSet(), lldb_private::ProcessInstanceInfoMatch::GetProcessInfo(), lldb_private::StreamString::GetString(), LIBLLDB_LOG_PROCESS, LLDB_LOG, lldb_private::FileSpec::SetFile(), and lldb_private::ProcessInstanceInfoMatch::SetNameMatchType().

Referenced by Handle_vAttachOrWait(), and Handle_vAttachWait().

◆ BuildTargetXml()

llvm::Expected< std::unique_ptr< llvm::MemoryBuffer > > GDBRemoteCommunicationServerLLGS::BuildTargetXml ( )
private

◆ ClearProcessSpecificData()

void GDBRemoteCommunicationServerLLGS::ClearProcessSpecificData ( )
private

◆ DataAvailableCallback()

void GDBRemoteCommunicationServerLLGS::DataAvailableCallback ( )
private

◆ DidExec()

void GDBRemoteCommunicationServerLLGS::DidExec ( NativeProcessProtocol process)
overridevirtual

◆ FindModuleFile()

FileSpec GDBRemoteCommunicationServerLLGS::FindModuleFile ( const std::string module_path,
const ArchSpec arch 
)
overrideprotectedvirtual

◆ GetContinueThreadID()

lldb::tid_t lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::GetContinueThreadID ( ) const
inlineprotected

Definition at line 232 of file GDBRemoteCommunicationServerLLGS.h.

References m_continue_tid.

Referenced by Handle_C(), and Handle_s().

◆ GetCurrentThreadID()

lldb::tid_t GDBRemoteCommunicationServerLLGS::GetCurrentThreadID ( ) const
protected

◆ GetNextSavedRegistersID()

uint32_t GDBRemoteCommunicationServerLLGS::GetNextSavedRegistersID ( )
private

◆ GetThreadFromSuffix()

NativeThreadProtocol * GDBRemoteCommunicationServerLLGS::GetThreadFromSuffix ( StringExtractorGDBRemote packet)
private

◆ Handle__M()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle__M ( StringExtractorGDBRemote packet)
protected

◆ Handle__m()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle__m ( StringExtractorGDBRemote packet)
protected

◆ Handle_C()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_C ( StringExtractorGDBRemote packet)
protected

◆ Handle_c()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_c ( StringExtractorGDBRemote packet)
protected

◆ Handle_D()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_D ( StringExtractorGDBRemote packet)
protected

◆ Handle_g()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_g ( StringExtractorGDBRemote packet)
protected

◆ Handle_H()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_H ( StringExtractorGDBRemote packet)
protected

◆ Handle_I()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_I ( StringExtractorGDBRemote packet)
protected

◆ Handle_interrupt()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_interrupt ( StringExtractorGDBRemote packet)
protected

◆ Handle_jLLDBTraceGetBinaryData()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_jLLDBTraceGetBinaryData ( StringExtractorGDBRemote packet)
protected

◆ Handle_jLLDBTraceGetState()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_jLLDBTraceGetState ( StringExtractorGDBRemote packet)
protected

◆ Handle_jLLDBTraceStart()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_jLLDBTraceStart ( StringExtractorGDBRemote packet)
protected

◆ Handle_jLLDBTraceStop()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_jLLDBTraceStop ( StringExtractorGDBRemote packet)
protected

◆ Handle_jLLDBTraceSupported()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_jLLDBTraceSupported ( StringExtractorGDBRemote packet)
protected

◆ Handle_jThreadsInfo()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_jThreadsInfo ( StringExtractorGDBRemote packet)
protected

◆ Handle_k()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_k ( StringExtractorGDBRemote packet)
protected

◆ Handle_M()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_M ( StringExtractorGDBRemote packet)
protected

◆ Handle_memory_read()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_memory_read ( StringExtractorGDBRemote packet)
protected

◆ Handle_p()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_p ( StringExtractorGDBRemote packet)
protected

◆ Handle_P()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_P ( StringExtractorGDBRemote packet)
protected

◆ Handle_qC()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_qC ( StringExtractorGDBRemote packet)
protected

◆ Handle_qFileLoadAddress()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_qFileLoadAddress ( StringExtractorGDBRemote packet)
protected

◆ Handle_qfThreadInfo()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_qfThreadInfo ( StringExtractorGDBRemote packet)
protected

◆ Handle_qGetWorkingDir()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_qGetWorkingDir ( StringExtractorGDBRemote packet)
protected

◆ Handle_QListThreadsInStopReply()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_QListThreadsInStopReply ( StringExtractorGDBRemote packet)
protected

◆ Handle_qMemoryRegionInfo()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_qMemoryRegionInfo ( StringExtractorGDBRemote packet)
protected

◆ Handle_qMemoryRegionInfoSupported()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_qMemoryRegionInfoSupported ( StringExtractorGDBRemote packet)
protected

◆ Handle_qMemTags()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_qMemTags ( StringExtractorGDBRemote packet)
protected

◆ Handle_QMemTags()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_QMemTags ( StringExtractorGDBRemote packet)
protected

◆ Handle_QPassSignals()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_QPassSignals ( StringExtractorGDBRemote packet)
protected

◆ Handle_qProcessInfo()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_qProcessInfo ( StringExtractorGDBRemote packet)
protected

◆ Handle_qRegisterInfo()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_qRegisterInfo ( StringExtractorGDBRemote packet)
protected

◆ Handle_QRestoreRegisterState()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_QRestoreRegisterState ( StringExtractorGDBRemote packet)
protected

◆ Handle_qSaveCore()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_qSaveCore ( StringExtractorGDBRemote packet)
protected

◆ Handle_QSaveRegisterState()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_QSaveRegisterState ( StringExtractorGDBRemote packet)
protected

◆ Handle_QSetDisableASLR()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_QSetDisableASLR ( StringExtractorGDBRemote packet)
protected

◆ Handle_QSetWorkingDir()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_QSetWorkingDir ( StringExtractorGDBRemote packet)
protected

◆ Handle_qsThreadInfo()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_qsThreadInfo ( StringExtractorGDBRemote packet)
protected

◆ Handle_qThreadStopInfo()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_qThreadStopInfo ( StringExtractorGDBRemote packet)
protected

◆ Handle_QThreadSuffixSupported()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_QThreadSuffixSupported ( StringExtractorGDBRemote packet)
protected

◆ Handle_qVAttachOrWaitSupported()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_qVAttachOrWaitSupported ( StringExtractorGDBRemote packet)
protected

◆ Handle_qWatchpointSupportInfo()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_qWatchpointSupportInfo ( StringExtractorGDBRemote packet)
protected

◆ Handle_qXfer()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_qXfer ( StringExtractorGDBRemote packet)
protected

◆ Handle_s()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_s ( StringExtractorGDBRemote packet)
protected

◆ Handle_stop_reason()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_stop_reason ( StringExtractorGDBRemote packet)
protected

◆ Handle_vAttach()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_vAttach ( StringExtractorGDBRemote packet)
protected

◆ Handle_vAttachOrWait()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_vAttachOrWait ( StringExtractorGDBRemote packet)
protected

◆ Handle_vAttachWait()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_vAttachWait ( StringExtractorGDBRemote packet)
protected

◆ Handle_vCont()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_vCont ( StringExtractorGDBRemote packet)
protected

◆ Handle_vCont_actions()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_vCont_actions ( StringExtractorGDBRemote packet)
protected

◆ Handle_vRun()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_vRun ( StringExtractorGDBRemote packet)
protected

◆ Handle_Z()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_Z ( StringExtractorGDBRemote packet)
protected

◆ Handle_z()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::Handle_z ( StringExtractorGDBRemote packet)
protected

◆ HandleFeatures()

std::vector< std::string > GDBRemoteCommunicationServerLLGS::HandleFeatures ( const llvm::ArrayRef< llvm::StringRef >  client_features)
overrideprotectedvirtual

◆ HandleInferiorState_Exited()

void GDBRemoteCommunicationServerLLGS::HandleInferiorState_Exited ( NativeProcessProtocol process)
private

◆ HandleInferiorState_Stopped()

void GDBRemoteCommunicationServerLLGS::HandleInferiorState_Stopped ( NativeProcessProtocol process)
private

◆ InitializeConnection()

Status GDBRemoteCommunicationServerLLGS::InitializeConnection ( std::unique_ptr< Connection connection)

◆ InitializeDelegate()

void GDBRemoteCommunicationServerLLGS::InitializeDelegate ( NativeProcessProtocol process)
overridevirtual

◆ LaunchProcess()

Status GDBRemoteCommunicationServerLLGS::LaunchProcess ( )
overridevirtual

◆ MaybeCloseInferiorTerminalConnection()

void GDBRemoteCommunicationServerLLGS::MaybeCloseInferiorTerminalConnection ( )
private

◆ NewSubprocess()

void GDBRemoteCommunicationServerLLGS::NewSubprocess ( NativeProcessProtocol parent_process,
std::unique_ptr< NativeProcessProtocol child_process 
)
overridevirtual

◆ operator=()

const GDBRemoteCommunicationServerLLGS& lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::operator= ( const GDBRemoteCommunicationServerLLGS )
privatedelete

◆ ProcessStateChanged()

void GDBRemoteCommunicationServerLLGS::ProcessStateChanged ( NativeProcessProtocol process,
lldb::StateType  state 
)
overridevirtual

◆ ReadTid()

llvm::Expected< lldb::tid_t > GDBRemoteCommunicationServerLLGS::ReadTid ( StringExtractorGDBRemote packet,
bool  allow_all,
lldb::pid_t  default_pid 
)
private

◆ ReadXferObject()

llvm::Expected< std::unique_ptr< llvm::MemoryBuffer > > GDBRemoteCommunicationServerLLGS::ReadXferObject ( llvm::StringRef  object,
llvm::StringRef  annex 
)
protected

◆ RegisterPacketHandlers()

void GDBRemoteCommunicationServerLLGS::RegisterPacketHandlers ( )
private

Definition at line 80 of file GDBRemoteCommunicationServerLLGS.cpp.

References error(), StringExtractorGDBRemote::eServerPacketType__M, StringExtractorGDBRemote::eServerPacketType__m, StringExtractorGDBRemote::eServerPacketType_c, StringExtractorGDBRemote::eServerPacketType_C, StringExtractorGDBRemote::eServerPacketType_D, StringExtractorGDBRemote::eServerPacketType_g, StringExtractorGDBRemote::eServerPacketType_H, StringExtractorGDBRemote::eServerPacketType_I, StringExtractorGDBRemote::eServerPacketType_interrupt, StringExtractorGDBRemote::eServerPacketType_jLLDBTraceGetBinaryData, StringExtractorGDBRemote::eServerPacketType_jLLDBTraceGetState, StringExtractorGDBRemote::eServerPacketType_jLLDBTraceStart, StringExtractorGDBRemote::eServerPacketType_jLLDBTraceStop, StringExtractorGDBRemote::eServerPacketType_jLLDBTraceSupported, StringExtractorGDBRemote::eServerPacketType_jThreadsInfo, StringExtractorGDBRemote::eServerPacketType_k, StringExtractorGDBRemote::eServerPacketType_m, StringExtractorGDBRemote::eServerPacketType_M, StringExtractorGDBRemote::eServerPacketType_p, StringExtractorGDBRemote::eServerPacketType_P, StringExtractorGDBRemote::eServerPacketType_qC, StringExtractorGDBRemote::eServerPacketType_qFileLoadAddress, StringExtractorGDBRemote::eServerPacketType_qfThreadInfo, StringExtractorGDBRemote::eServerPacketType_qGetWorkingDir, StringExtractorGDBRemote::eServerPacketType_QListThreadsInStopReply, StringExtractorGDBRemote::eServerPacketType_qLLDBSaveCore, StringExtractorGDBRemote::eServerPacketType_qMemoryRegionInfo, StringExtractorGDBRemote::eServerPacketType_qMemoryRegionInfoSupported, StringExtractorGDBRemote::eServerPacketType_qMemTags, StringExtractorGDBRemote::eServerPacketType_QMemTags, StringExtractorGDBRemote::eServerPacketType_QPassSignals, StringExtractorGDBRemote::eServerPacketType_qProcessInfo, StringExtractorGDBRemote::eServerPacketType_qRegisterInfo, StringExtractorGDBRemote::eServerPacketType_QRestoreRegisterState, StringExtractorGDBRemote::eServerPacketType_QSaveRegisterState, StringExtractorGDBRemote::eServerPacketType_QSetDisableASLR, StringExtractorGDBRemote::eServerPacketType_QSetWorkingDir, StringExtractorGDBRemote::eServerPacketType_qsThreadInfo, StringExtractorGDBRemote::eServerPacketType_qThreadStopInfo, StringExtractorGDBRemote::eServerPacketType_QThreadSuffixSupported, StringExtractorGDBRemote::eServerPacketType_qVAttachOrWaitSupported, StringExtractorGDBRemote::eServerPacketType_qWatchpointSupportInfo, StringExtractorGDBRemote::eServerPacketType_qXfer, StringExtractorGDBRemote::eServerPacketType_s, StringExtractorGDBRemote::eServerPacketType_stop_reason, StringExtractorGDBRemote::eServerPacketType_vAttach, StringExtractorGDBRemote::eServerPacketType_vAttachOrWait, StringExtractorGDBRemote::eServerPacketType_vAttachWait, StringExtractorGDBRemote::eServerPacketType_vCont, StringExtractorGDBRemote::eServerPacketType_vCont_actions, StringExtractorGDBRemote::eServerPacketType_vRun, StringExtractorGDBRemote::eServerPacketType_x, StringExtractorGDBRemote::eServerPacketType_Z, StringExtractorGDBRemote::eServerPacketType_z, Handle__M(), Handle__m(), Handle_C(), Handle_c(), Handle_D(), Handle_g(), Handle_H(), Handle_I(), Handle_interrupt(), Handle_jLLDBTraceGetBinaryData(), Handle_jLLDBTraceGetState(), Handle_jLLDBTraceStart(), Handle_jLLDBTraceStop(), Handle_jLLDBTraceSupported(), Handle_jThreadsInfo(), Handle_k(), Handle_M(), Handle_memory_read(), Handle_p(), Handle_P(), Handle_qC(), Handle_qFileLoadAddress(), Handle_qfThreadInfo(), Handle_qGetWorkingDir(), Handle_QListThreadsInStopReply(), Handle_qMemoryRegionInfo(), Handle_qMemoryRegionInfoSupported(), Handle_qMemTags(), Handle_QMemTags(), Handle_QPassSignals(), Handle_qProcessInfo(), Handle_qRegisterInfo(), Handle_QRestoreRegisterState(), Handle_qSaveCore(), Handle_QSaveRegisterState(), Handle_QSetDisableASLR(), Handle_QSetWorkingDir(), Handle_qsThreadInfo(), Handle_qThreadStopInfo(), Handle_QThreadSuffixSupported(), Handle_qVAttachOrWaitSupported(), Handle_qWatchpointSupportInfo(), Handle_qXfer(), Handle_s(), Handle_stop_reason(), Handle_vAttach(), Handle_vAttachOrWait(), Handle_vAttachWait(), Handle_vCont(), Handle_vCont_actions(), Handle_vRun(), Handle_Z(), Handle_z(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerCommon::RegisterMemberFunctionHandler(), and lldb_private::process_gdb_remote::GDBRemoteCommunicationServer::RegisterPacketHandler().

Referenced by GDBRemoteCommunicationServerLLGS().

◆ SendONotification()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::SendONotification ( const char *  buffer,
uint32_t  len 
)
protected

◆ SendProcessOutput()

void GDBRemoteCommunicationServerLLGS::SendProcessOutput ( )
private

◆ SendStopReasonForState()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::SendStopReasonForState ( lldb::StateType  process_state)
protected

◆ SendStopReplyPacketForThread()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::SendStopReplyPacketForThread ( lldb::tid_t  tid)
protected

Definition at line 767 of file GDBRemoteCommunicationServerLLGS.cpp.

References lldb_private::Stream::AsRawOstream(), lldb_private::NativeRegisterContext::ConvertRegisterKindToRegisterNumber(), lldb_private::ThreadStopInfo::details, lldb::eByteOrderBig, lldb::eRegisterKindGeneric, error(), lldb::eStopReasonException, lldb::eStopReasonFork, lldb::eStopReasonVFork, lldb_private::ThreadStopInfo::exception, lldb_private::ThreadStopInfo::fork, lldb_private::NativeProcessProtocol::fork, lldb_private::Full, lldb_private::StreamString::GetData(), lldb_private::NativeRegisterContext::GetExpeditedRegisters(), lldb_private::NativeThreadProtocol::GetID(), lldb_private::NativeProcessProtocol::GetID(), GetJSONThreadsInfo(), lldb_private::GetLogIfAnyCategoriesSet(), lldb_private::NativeThreadProtocol::GetName(), lldb_private::NativeThreadProtocol::GetRegisterContext(), lldb_private::NativeRegisterContext::GetRegisterInfoAtIndex(), lldb_private::NativeThreadProtocol::GetStopReason(), GetStopReasonString(), lldb_private::StreamString::GetString(), lldb_private::NativeProcessProtocol::GetThreadAtIndex(), lldb_private::NativeProcessProtocol::GetThreadByID(), lldb_private::endian::InlHostByteOrder(), LIBLLDB_LOG_PROCESS, LIBLLDB_LOG_THREAD, LLDB_INVALID_PROCESS_ID, LLDB_LOG, LLDB_LOG_ERROR, LLDB_LOGF, LLDB_REGNUM_GENERIC_PC, m_current_process, m_extensions_supported, m_list_threads_in_stop_reply, lldb_private::NativeProcessProtocol::multiprocess, lldb_private::Stream::Printf(), lldb_private::Stream::PutChar(), lldb_private::Stream::PutCString(), lldb_private::Stream::PutHex32(), lldb_private::Stream::PutHex64(), lldb_private::Stream::PutHex8(), lldb_private::Stream::PutStringAsRawHex8(), lldb_private::NativeRegisterContext::ReadRegister(), lldb_private::ThreadStopInfo::reason, lldb_private::process_gdb_remote::GDBRemoteCommunicationServer::SendErrorResponse(), lldb_private::process_gdb_remote::GDBRemoteCommunication::SendPacketNoLock(), lldb_private::ThreadStopInfo::signal, string(), lldb_private::NativeProcessProtocol::vfork, and WriteRegisterValueInHexFixedWidth().

Referenced by Handle_qThreadStopInfo(), and SendStopReasonForState().

◆ SendWResponse()

GDBRemoteCommunication::PacketResult GDBRemoteCommunicationServerLLGS::SendWResponse ( NativeProcessProtocol process)
protected

◆ SetContinueThreadID()

void GDBRemoteCommunicationServerLLGS::SetContinueThreadID ( lldb::tid_t  tid)
protected

◆ SetCurrentThreadID()

void GDBRemoteCommunicationServerLLGS::SetCurrentThreadID ( lldb::tid_t  tid)
protected

◆ SetEnabledExtensions()

void GDBRemoteCommunicationServerLLGS::SetEnabledExtensions ( NativeProcessProtocol process)
private

◆ SetLaunchInfo()

void GDBRemoteCommunicationServerLLGS::SetLaunchInfo ( const ProcessLaunchInfo info)

◆ SetSTDIOFileDescriptor()

Status GDBRemoteCommunicationServerLLGS::SetSTDIOFileDescriptor ( int  fd)
protected

◆ StartSTDIOForwarding()

void GDBRemoteCommunicationServerLLGS::StartSTDIOForwarding ( )
private

◆ StopSTDIOForwarding()

void GDBRemoteCommunicationServerLLGS::StopSTDIOForwarding ( )
private

Definition at line 1182 of file GDBRemoteCommunicationServerLLGS.cpp.

References m_stdio_handle_up.

Referenced by Handle_D(), Handle_k(), and ProcessStateChanged().

◆ XMLEncodeAttributeValue()

std::string GDBRemoteCommunicationServerLLGS::XMLEncodeAttributeValue ( llvm::StringRef  value)
staticprotected

Definition at line 3765 of file GDBRemoteCommunicationServerLLGS.cpp.

References string().

Referenced by ReadXferObject().

Member Data Documentation

◆ m_continue_process

NativeProcessProtocol* lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_continue_process
protected

◆ m_continue_tid

lldb::tid_t lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_continue_tid = LLDB_INVALID_THREAD_ID
protected

Definition at line 92 of file GDBRemoteCommunicationServerLLGS.h.

Referenced by GetContinueThreadID(), and SetContinueThreadID().

◆ m_current_process

NativeProcessProtocol* lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_current_process
protected

◆ m_current_tid

lldb::tid_t lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_current_tid = LLDB_INVALID_THREAD_ID
protected

Definition at line 91 of file GDBRemoteCommunicationServerLLGS.h.

Referenced by GetCurrentThreadID(), and SetCurrentThreadID().

◆ m_debugged_process_mutex

std::recursive_mutex lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_debugged_process_mutex
protected

Definition at line 95 of file GDBRemoteCommunicationServerLLGS.h.

Referenced by LaunchProcess().

◆ m_debugged_processes

std::unordered_map<lldb::pid_t, std::unique_ptr<NativeProcessProtocol> > lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_debugged_processes
protected

◆ m_extensions_supported

NativeProcessProtocol::Extension lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_extensions_supported = {}
protected

◆ m_inferior_prev_state

lldb::StateType lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_inferior_prev_state = lldb::StateType::eStateInvalid
protected

◆ m_list_threads_in_stop_reply

bool lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_list_threads_in_stop_reply = false
protected

◆ m_mainloop

MainLoop& lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_mainloop
protected

◆ m_network_handle_up

MainLoop::ReadHandleUP lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_network_handle_up
protected

Definition at line 89 of file GDBRemoteCommunicationServerLLGS.h.

Referenced by InitializeConnection().

◆ m_next_saved_registers_id

uint32_t lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_next_saved_registers_id = 1
protected

Definition at line 106 of file GDBRemoteCommunicationServerLLGS.h.

Referenced by GetNextSavedRegistersID().

◆ m_process_factory

const NativeProcessProtocol::Factory& lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_process_factory
protected

◆ m_saved_registers_map

std::unordered_map<uint32_t, lldb::DataBufferSP> lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_saved_registers_map
protected

◆ m_saved_registers_mutex

std::mutex lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_saved_registers_mutex
protected

◆ m_stdio_communication

Communication lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_stdio_communication
protected

◆ m_stdio_handle_up

MainLoop::ReadHandleUP lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_stdio_handle_up
protected

◆ m_thread_suffix_supported

bool lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_thread_suffix_supported = false
protected

◆ m_xfer_buffer_map

llvm::StringMap<std::unique_ptr<llvm::MemoryBuffer> > lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::m_xfer_buffer_map
protected

Definition at line 103 of file GDBRemoteCommunicationServerLLGS.h.

Referenced by ClearProcessSpecificData(), and Handle_qXfer().


The documentation for this class was generated from the following files: