[Lldb-commits] [PATCH] D111964: [lldb] [lldb-server] Support listening on serial://
Michał Górny via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Sun Oct 17 07:34:06 PDT 2021
mgorny created this revision.
mgorny added reviewers: labath, krytarowski, emaste, teemperor.
mgorny requested review of this revision.
Support listening on serial port when serial:// protocol is being used
in place of host/port. This is not fully functional yet, as lldb-server
crashes when attempting to send long packets (e.g. target.xml contents).
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
@@ -228,23 +228,26 @@
final_host_and_port.append("localhost");
final_host_and_port.append(host_and_port.str());
- if (reverse_connect) {
+ bool is_serial = host_and_port.startswith("serial://");
+ if (reverse_connect || is_serial) {
// 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) {
- fprintf(stderr, "error: port number must be specified on when using "
- "reverse connect\n");
- exit(1);
- }
+ if (!is_serial) {
+ // 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) {
+ fprintf(stderr, "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);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D111964.380246.patch
Type: text/x-patch
Size: 2014 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20211017/ab615d6b/attachment-0001.bin>
More information about the lldb-commits
mailing list