ovyalov updated this revision to Diff 38588.
ovyalov added a comment.
Addressed review comments - please take another look.
http://reviews.llvm.org/D14126
Files:
source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h
tools/lldb-server/Acceptor.cpp
tools/lldb-server/Acceptor.h
tools/lldb-server/lldb-platform.cpp
Index: tools/lldb-server/lldb-platform.cpp
===================================================================
--- tools/lldb-server/lldb-platform.cpp
+++ tools/lldb-server/lldb-platform.cpp
@@ -315,7 +315,8 @@
}
do {
- GDBRemoteCommunicationServerPlatform platform(acceptor_up->GetSocketProtocol());
+ GDBRemoteCommunicationServerPlatform platform(acceptor_up->GetSocketProtocol(),
+ acceptor_up->GetSocketScheme());
if (port_offset > 0)
platform.SetPortOffset(port_offset);
Index: tools/lldb-server/Acceptor.h
===================================================================
--- tools/lldb-server/Acceptor.h
+++ tools/lldb-server/Acceptor.h
@@ -42,6 +42,9 @@
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
Index: tools/lldb-server/Acceptor.cpp
===================================================================
--- tools/lldb-server/Acceptor.cpp
+++ tools/lldb-server/Acceptor.cpp
@@ -37,7 +37,8 @@
{"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 @@
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 @@
return m_listener_socket_up->GetSocketProtocol();
}
+const char*
+Acceptor::GetSocketScheme() const
+{
+ return FindSchemeByProtocol(GetSocketProtocol());
+}
+
std::string
Acceptor::GetLocalSocketId() const
{
Index: source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h
===================================================================
--- source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h
+++ source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.h
@@ -29,7 +29,8 @@
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 @@
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;
Index: source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
===================================================================
--- source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
+++ source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
@@ -46,9 +46,11 @@
//----------------------------------------------------------------------
// 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 @@
std::ostringstream url;
uint16_t* port_ptr = &port;
+ url << m_socket_scheme << "://";
if (m_socket_protocol == Socket::ProtocolTcp)
url << platform_ip << ":" << port;
else
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits