mgorny updated this revision to Diff 380502.
mgorny retitled this revision from "[lldb] [lldb-server] Support listening on 
serial://" to "[lldb] [lldb-server] Allow any protocol supported by lldb".
mgorny edited the summary of this revision.

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D111964/new/

https://reviews.llvm.org/D111964

Files:
  lldb/tools/lldb-server/lldb-gdbserver.cpp


Index: lldb/tools/lldb-server/lldb-gdbserver.cpp
===================================================================
--- lldb/tools/lldb-server/lldb-gdbserver.cpp
+++ lldb/tools/lldb-server/lldb-gdbserver.cpp
@@ -230,24 +230,27 @@
       final_host_and_port.append("localhost");
     final_host_and_port.append(host_and_port.str());
 
-    if (reverse_connect) {
+    bool is_url = host_and_port.contains("://");
+    if (reverse_connect || is_url) {
       // llgs will connect to the gdb-remote client.
 
-      // Ensure we have a port number for the connection.
-      // Note: use rfind, because the host/port may look like "[::1]:12345".
-      uint32_t connection_portno = 0;
-      const std::string::size_type colon_pos = final_host_and_port.rfind(':');
-      if (colon_pos != std::string::npos)
-        llvm::to_integer(final_host_and_port.substr(colon_pos + 1),
-                         connection_portno);
-      if (connection_portno == 0) {
-        llvm::errs() << "error: port number must be specified on when using "
-                        "reverse connect\n";
-        exit(1);
-      }
+      if (!is_url) {
+        // Ensure we have a port number for the connection.
+        // Note: use rfind, because the host/port may look like "[::1]:12345".
+        uint32_t connection_portno = 0;
+        const std::string::size_type colon_pos = 
final_host_and_port.rfind(':');
+        if (colon_pos != std::string::npos)
+          llvm::to_integer(final_host_and_port.substr(colon_pos + 1),
+                           connection_portno);
+        if (connection_portno == 0) {
+          llvm::errs() << "error: port number must be specified on when using "
+                          "reverse connect\n";
+          exit(1);
+        }
 
-      // Build the connection string.
-      final_host_and_port.insert(0, "connect://");
+        // Build the connection string.
+        final_host_and_port.insert(0, "connect://");
+      }
 
       // Create the connection.
       connection_up.reset(new ConnectionFileDescriptor);


Index: lldb/tools/lldb-server/lldb-gdbserver.cpp
===================================================================
--- lldb/tools/lldb-server/lldb-gdbserver.cpp
+++ lldb/tools/lldb-server/lldb-gdbserver.cpp
@@ -230,24 +230,27 @@
       final_host_and_port.append("localhost");
     final_host_and_port.append(host_and_port.str());
 
-    if (reverse_connect) {
+    bool is_url = host_and_port.contains("://");
+    if (reverse_connect || is_url) {
       // llgs will connect to the gdb-remote client.
 
-      // Ensure we have a port number for the connection.
-      // Note: use rfind, because the host/port may look like "[::1]:12345".
-      uint32_t connection_portno = 0;
-      const std::string::size_type colon_pos = final_host_and_port.rfind(':');
-      if (colon_pos != std::string::npos)
-        llvm::to_integer(final_host_and_port.substr(colon_pos + 1),
-                         connection_portno);
-      if (connection_portno == 0) {
-        llvm::errs() << "error: port number must be specified on when using "
-                        "reverse connect\n";
-        exit(1);
-      }
+      if (!is_url) {
+        // Ensure we have a port number for the connection.
+        // Note: use rfind, because the host/port may look like "[::1]:12345".
+        uint32_t connection_portno = 0;
+        const std::string::size_type colon_pos = final_host_and_port.rfind(':');
+        if (colon_pos != std::string::npos)
+          llvm::to_integer(final_host_and_port.substr(colon_pos + 1),
+                           connection_portno);
+        if (connection_portno == 0) {
+          llvm::errs() << "error: port number must be specified on when using "
+                          "reverse connect\n";
+          exit(1);
+        }
 
-      // Build the connection string.
-      final_host_and_port.insert(0, "connect://");
+        // Build the connection string.
+        final_host_and_port.insert(0, "connect://");
+      }
 
       // Create the connection.
       connection_up.reset(new ConnectionFileDescriptor);
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to