diff options
Diffstat (limited to 'lldb/source/Plugins/Platform')
6 files changed, 17 insertions, 14 deletions
diff --git a/lldb/source/Plugins/Platform/Android/AdbClient.cpp b/lldb/source/Plugins/Platform/Android/AdbClient.cpp index 7c9c70ac845..fbf6dee87bf 100644 --- a/lldb/source/Plugins/Platform/Android/AdbClient.cpp +++ b/lldb/source/Plugins/Platform/Android/AdbClient.cpp @@ -185,7 +185,7 @@ Error AdbClient::SetPortForwarding(const uint16_t local_port, } Error AdbClient::SetPortForwarding(const uint16_t local_port, - const char *remote_socket_name, + llvm::StringRef remote_socket_name, const UnixSocketNamespace socket_namespace) { char message[PATH_MAX]; const char *sock_namespace_str = @@ -193,7 +193,7 @@ Error AdbClient::SetPortForwarding(const uint16_t local_port, ? kSocketNamespaceAbstract : kSocketNamespaceFileSystem; snprintf(message, sizeof(message), "forward:tcp:%d;%s:%s", local_port, - sock_namespace_str, remote_socket_name); + sock_namespace_str, remote_socket_name.str().c_str()); const auto error = SendDeviceMessage(message); if (error.Fail()) diff --git a/lldb/source/Plugins/Platform/Android/AdbClient.h b/lldb/source/Plugins/Platform/Android/AdbClient.h index 471dce5ea75..56bb04e3904 100644 --- a/lldb/source/Plugins/Platform/Android/AdbClient.h +++ b/lldb/source/Plugins/Platform/Android/AdbClient.h @@ -96,7 +96,7 @@ public: const uint16_t remote_port); Error SetPortForwarding(const uint16_t local_port, - const char *remote_socket_name, + llvm::StringRef remote_socket_name, const UnixSocketNamespace socket_namespace); Error DeletePortForwarding(const uint16_t local_port); diff --git a/lldb/source/Plugins/Platform/Android/PlatformAndroid.cpp b/lldb/source/Plugins/Platform/Android/PlatformAndroid.cpp index 9f1a38924fd..7d701728635 100644 --- a/lldb/source/Plugins/Platform/Android/PlatformAndroid.cpp +++ b/lldb/source/Plugins/Platform/Android/PlatformAndroid.cpp @@ -168,7 +168,7 @@ Error PlatformAndroid::ConnectRemote(Args &args) { m_remote_platform_sp = PlatformSP(new PlatformAndroidRemoteGDBServer()); int port; - std::string scheme, host, path; + llvm::StringRef scheme, host, path; const char *url = args.GetArgumentAtIndex(0); if (!url) return Error("URL is null."); diff --git a/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp b/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp index 9650fb4028c..288accfe871 100644 --- a/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp +++ b/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp @@ -27,7 +27,7 @@ static const lldb::pid_t g_remote_platform_pid = static Error ForwardPortWithAdb( const uint16_t local_port, const uint16_t remote_port, - const char *remote_socket_name, + llvm::StringRef remote_socket_name, const llvm::Optional<AdbClient::UnixSocketNamespace> &socket_namespace, std::string &device_id) { Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PLATFORM)); @@ -50,7 +50,7 @@ static Error ForwardPortWithAdb( if (log) log->Printf("Forwarding remote socket \"%s\" to local TCP port %d", - remote_socket_name, local_port); + remote_socket_name.str().c_str(), local_port); if (!socket_namespace) return Error("Invalid socket namespace"); @@ -114,7 +114,7 @@ Error PlatformAndroidRemoteGDBServer::ConnectRemote(Args &args) { return Error("\"platform connect\" takes a single argument: <connect-url>"); int remote_port; - std::string scheme, host, path; + llvm::StringRef scheme, host, path; const char *url = args.GetArgumentAtIndex(0); if (!url) return Error("URL is null."); @@ -132,7 +132,7 @@ Error PlatformAndroidRemoteGDBServer::ConnectRemote(Args &args) { std::string connect_url; auto error = MakeConnectURL(g_remote_platform_pid, (remote_port < 0) ? 0 : remote_port, - path.c_str(), connect_url); + path, connect_url); if (error.Fail()) return error; @@ -175,7 +175,7 @@ void PlatformAndroidRemoteGDBServer::DeleteForwardPort(lldb::pid_t pid) { Error PlatformAndroidRemoteGDBServer::MakeConnectURL( const lldb::pid_t pid, const uint16_t remote_port, - const char *remote_socket_name, std::string &connect_url) { + llvm::StringRef remote_socket_name, std::string &connect_url) { static const int kAttempsNum = 5; Error error; @@ -214,7 +214,7 @@ lldb::ProcessSP PlatformAndroidRemoteGDBServer::ConnectProcess( static lldb::pid_t s_remote_gdbserver_fake_pid = 0xffffffffffffffffULL; int remote_port; - std::string scheme, host, path; + llvm::StringRef scheme, host, path; if (!UriParser::Parse(connect_url, scheme, host, remote_port, path)) { error.SetErrorStringWithFormat("Invalid URL: %s", connect_url); return nullptr; @@ -222,7 +222,7 @@ lldb::ProcessSP PlatformAndroidRemoteGDBServer::ConnectProcess( std::string new_connect_url; error = MakeConnectURL(s_remote_gdbserver_fake_pid--, - (remote_port < 0) ? 0 : remote_port, path.c_str(), + (remote_port < 0) ? 0 : remote_port, path, new_connect_url); if (error.Fail()) return nullptr; diff --git a/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h b/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h index 9748c86b969..f9593fa8e80 100644 --- a/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h +++ b/lldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h @@ -55,7 +55,7 @@ protected: void DeleteForwardPort(lldb::pid_t pid); Error MakeConnectURL(const lldb::pid_t pid, const uint16_t remote_port, - const char *remote_socket_name, + llvm::StringRef remote_socket_name, std::string &connect_url); private: diff --git a/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp b/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp index 1a5df93fbd6..ccc73015adc 100644 --- a/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp +++ b/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp @@ -309,9 +309,12 @@ Error PlatformRemoteGDBServer::ConnectRemote(Args &args) { const char *url = args.GetArgumentAtIndex(0); if (!url) return Error("URL is null."); - if (!UriParser::Parse(url, m_platform_scheme, m_platform_hostname, port, - path)) + llvm::StringRef scheme, hostname, pathname; + if (!UriParser::Parse(url, scheme, hostname, port, pathname)) return Error("Invalid URL: %s", url); + m_platform_scheme = scheme; + m_platform_hostname = hostname; + path = pathname; const ConnectionStatus status = m_gdb_client.Connect(url, &error); if (status == eConnectionStatusSuccess) { |