summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins')
-rw-r--r--lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp18
-rw-r--r--lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h5
-rw-r--r--lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp42
-rw-r--r--lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h10
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);
};
OpenPOWER on IntegriCloud