diff options
Diffstat (limited to 'lldb/source/Plugins')
4 files changed, 58 insertions, 17 deletions
diff --git a/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp b/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp index 213c3b27c6e..f2c7af1421f 100644 --- a/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp +++ b/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp @@ -16,6 +16,8 @@ #include "PlatformAndroidRemoteGDBServer.h" #include "Utility/UriParser.h" +#include <sstream> + using namespace lldb; using namespace lldb_private; using namespace platform_android; @@ -135,3 +137,19 @@ PlatformAndroidRemoteGDBServer::DeleteForwardPort (lldb::pid_t pid) } m_port_forwards.erase(it); } + +std::string +PlatformAndroidRemoteGDBServer::MakeServerUrl(const char* scheme, + const char* hostname, + uint16_t port) +{ + std::ostringstream hostname_str; + if (!strcmp(scheme, "adb")) + hostname_str << "[" << hostname << "]"; + else + hostname_str << hostname; + + return PlatformRemoteGDBServer::MakeServerUrl(scheme, + hostname_str.str().c_str(), + port); +} diff --git a/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h b/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h index e549435a541..24532e6499c 100644 --- a/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h +++ b/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h @@ -49,6 +49,11 @@ protected: void DeleteForwardPort (lldb::pid_t pid); + std::string + MakeServerUrl(const char* scheme, + const char* hostname, + uint16_t port) override; + private: DISALLOW_COPY_AND_ASSIGN (PlatformAndroidRemoteGDBServer); diff --git a/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp b/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp index b0e75d4f345..911c946200c 100644 --- a/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp +++ b/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp @@ -40,23 +40,6 @@ using namespace lldb_private::platform_gdb_server; static bool g_initialized = false; -static std::string MakeGdbServerUrl( - const std::string &platform_scheme, - const std::string &platform_hostname, - uint16_t port) -{ - const char *override_scheme = getenv("LLDB_PLATFORM_REMOTE_GDB_SERVER_SCHEME"); - const char *override_hostname = getenv("LLDB_PLATFORM_REMOTE_GDB_SERVER_HOSTNAME"); - const char *port_offset_c_str = getenv("LLDB_PLATFORM_REMOTE_GDB_SERVER_PORT_OFFSET"); - int port_offset = port_offset_c_str ? ::atoi(port_offset_c_str) : 0; - StreamString result; - result.Printf("%s://%s:%u", - override_scheme ? override_scheme : platform_scheme.c_str(), - override_hostname ? override_hostname : platform_hostname.c_str(), - port + port_offset); - return result.GetString(); -} - void PlatformRemoteGDBServer::Initialize () { @@ -969,3 +952,28 @@ PlatformRemoteGDBServer::GetRemoteUnixSignals() return m_remote_signals_sp; } + +std::string +PlatformRemoteGDBServer::MakeGdbServerUrl(const std::string &platform_scheme, + const std::string &platform_hostname, + uint16_t port) +{ + const char *override_scheme = getenv("LLDB_PLATFORM_REMOTE_GDB_SERVER_SCHEME"); + const char *override_hostname = getenv("LLDB_PLATFORM_REMOTE_GDB_SERVER_HOSTNAME"); + const char *port_offset_c_str = getenv("LLDB_PLATFORM_REMOTE_GDB_SERVER_PORT_OFFSET"); + int port_offset = port_offset_c_str ? ::atoi(port_offset_c_str) : 0; + + return MakeServerUrl(override_scheme ? override_scheme : platform_scheme.c_str(), + override_hostname ? override_hostname : platform_hostname.c_str(), + port + port_offset); +} + +std::string +PlatformRemoteGDBServer::MakeServerUrl(const char* scheme, + const char* hostname, + uint16_t port) +{ + StreamString result; + result.Printf("%s://%s:%u", scheme, hostname, port); + return result.GetString(); +} diff --git a/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h b/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h index 0bf013fdfb6..1917c2648f1 100644 --- a/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h +++ b/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h @@ -234,7 +234,17 @@ protected: virtual bool KillSpawnedProcess (lldb::pid_t pid); + virtual std::string + MakeServerUrl(const char* scheme, + const char* hostname, + uint16_t port); + private: + std::string + MakeGdbServerUrl(const std::string &platform_scheme, + const std::string &platform_hostname, + uint16_t port); + DISALLOW_COPY_AND_ASSIGN (PlatformRemoteGDBServer); }; |

