Author: ovyalov Date: Wed Oct 28 14:49:50 2015 New Revision: 251547 URL: http://llvm.org/viewvc/llvm-project?rev=251547&view=rev Log: Make lldb-gdbserver to take explicit socket scheme as command line argument.
http://reviews.llvm.org/D14126 Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h lldb/trunk/tools/lldb-server/Acceptor.cpp lldb/trunk/tools/lldb-server/Acceptor.h lldb/trunk/tools/lldb-server/lldb-platform.cpp Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp?rev=251547&r1=251546&r2=251547&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp Wed Oct 28 14:49:50 2015 @@ -46,9 +46,11 @@ using namespace lldb_private::process_gd //---------------------------------------------------------------------- // GDBRemoteCommunicationServerPlatform constructor //---------------------------------------------------------------------- -GDBRemoteCommunicationServerPlatform::GDBRemoteCommunicationServerPlatform(const Socket::SocketProtocol socket_protocol) : +GDBRemoteCommunicationServerPlatform::GDBRemoteCommunicationServerPlatform(const Socket::SocketProtocol socket_protocol, + const char* socket_scheme) : GDBRemoteCommunicationServerCommon ("gdb-remote.server", "gdb-remote.server.rx_packet"), m_socket_protocol(socket_protocol), + m_socket_scheme(socket_scheme), m_spawned_pids_mutex (Mutex::eMutexTypeRecursive), m_platform_sp (Platform::GetHostPlatform ()), m_port_map (), @@ -150,6 +152,7 @@ GDBRemoteCommunicationServerPlatform::Ha std::ostringstream url; uint16_t* port_ptr = &port; + url << m_socket_scheme << "://"; if (m_socket_protocol == Socket::ProtocolTcp) url << platform_ip << ":" << port; else Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h?rev=251547&r1=251546&r2=251547&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h Wed Oct 28 14:49:50 2015 @@ -29,7 +29,8 @@ class GDBRemoteCommunicationServerPlatfo public: typedef std::map<uint16_t, lldb::pid_t> PortMap; - GDBRemoteCommunicationServerPlatform(const Socket::SocketProtocol socket_protocol); + GDBRemoteCommunicationServerPlatform(const Socket::SocketProtocol socket_protocol, + const char* socket_scheme); ~GDBRemoteCommunicationServerPlatform() override; @@ -67,6 +68,7 @@ public: protected: const Socket::SocketProtocol m_socket_protocol; + const std::string m_socket_scheme; Mutex m_spawned_pids_mutex; std::set<lldb::pid_t> m_spawned_pids; lldb::PlatformSP m_platform_sp; Modified: lldb/trunk/tools/lldb-server/Acceptor.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-server/Acceptor.cpp?rev=251547&r1=251546&r2=251547&view=diff ============================================================================== --- lldb/trunk/tools/lldb-server/Acceptor.cpp (original) +++ lldb/trunk/tools/lldb-server/Acceptor.cpp Wed Oct 28 14:49:50 2015 @@ -37,7 +37,8 @@ SocketScheme socket_schemes[] = { {"unix-abstract", Socket::ProtocolUnixAbstract}, }; -bool FindProtocolByScheme(const char* scheme, Socket::SocketProtocol& protocol) +bool +FindProtocolByScheme(const char* scheme, Socket::SocketProtocol& protocol) { for (auto s: socket_schemes) { @@ -50,6 +51,17 @@ bool FindProtocolByScheme(const char* sc return false; } +const char* +FindSchemeByProtocol(const Socket::SocketProtocol protocol) +{ + for (auto s: socket_schemes) + { + if (s.m_protocol == protocol) + return s.m_scheme; + } + return nullptr; +} + } Error @@ -78,6 +90,12 @@ Acceptor::GetSocketProtocol() const return m_listener_socket_up->GetSocketProtocol(); } +const char* +Acceptor::GetSocketScheme() const +{ + return FindSchemeByProtocol(GetSocketProtocol()); +} + std::string Acceptor::GetLocalSocketId() const { Modified: lldb/trunk/tools/lldb-server/Acceptor.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-server/Acceptor.h?rev=251547&r1=251546&r2=251547&view=diff ============================================================================== --- lldb/trunk/tools/lldb-server/Acceptor.h (original) +++ lldb/trunk/tools/lldb-server/Acceptor.h Wed Oct 28 14:49:50 2015 @@ -42,6 +42,9 @@ public: Socket::SocketProtocol GetSocketProtocol() const; + const char* + GetSocketScheme() const; + // Returns either TCP port number as string or domain socket path. // Empty string is returned in case of error. std::string Modified: lldb/trunk/tools/lldb-server/lldb-platform.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-server/lldb-platform.cpp?rev=251547&r1=251546&r2=251547&view=diff ============================================================================== --- lldb/trunk/tools/lldb-server/lldb-platform.cpp (original) +++ lldb/trunk/tools/lldb-server/lldb-platform.cpp Wed Oct 28 14:49:50 2015 @@ -315,7 +315,8 @@ main_platform (int argc, char *argv[]) } do { - GDBRemoteCommunicationServerPlatform platform(acceptor_up->GetSocketProtocol()); + GDBRemoteCommunicationServerPlatform platform(acceptor_up->GetSocketProtocol(), + acceptor_up->GetSocketScheme()); if (port_offset > 0) platform.SetPortOffset(port_offset); _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits