summaryrefslogtreecommitdiffstats
path: root/lldb/tools/lldb-gdbserver
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2013-12-05 22:58:22 +0000
committerGreg Clayton <gclayton@apple.com>2013-12-05 22:58:22 +0000
commit00fe87b4888b230325edd96a4c2df866d91da64e (patch)
tree350e9be859041c218dd63882cc04d56dcb3f93c0 /lldb/tools/lldb-gdbserver
parent58683755ed7929af96a139ca9e36e3d819d0bd87 (diff)
downloadbcm5719-llvm-00fe87b4888b230325edd96a4c2df866d91da64e.tar.gz
bcm5719-llvm-00fe87b4888b230325edd96a4c2df866d91da64e.zip
Modified local spawning in debugserver processes to use a new --reverse-connect option so that debugserver actually connects back to LLDB instead of LLDB connecting to debugserver.
This gets rid of our hacky "get_random_port()" which would grab a random port and tell debugserver to open that port. Now LLDB creates, binds, listens and accepts a connection by binding to port zero and sending the correctly bound port down as the host:port to connect back to. Fixed the "ConnectionFileDescriptor" to be able to correctly listen for connections from a specified host, localhost, or any host. Prior to this fix "listen://" only accepted the following format: listen://<port> But now it can accept: listen://<port> // Listen for connection from localhost on port <port> listen://<host>:<port> // Listen for connection from <host> and <port> listen://*:<port> // Listen for connection from any host on port <port> llvm-svn: 196547
Diffstat (limited to 'lldb/tools/lldb-gdbserver')
-rw-r--r--lldb/tools/lldb-gdbserver/lldb-gdbserver.cpp18
1 files changed, 7 insertions, 11 deletions
diff --git a/lldb/tools/lldb-gdbserver/lldb-gdbserver.cpp b/lldb/tools/lldb-gdbserver/lldb-gdbserver.cpp
index b675dadceb7..4d9f02d07c9 100644
--- a/lldb/tools/lldb-gdbserver/lldb-gdbserver.cpp
+++ b/lldb/tools/lldb-gdbserver/lldb-gdbserver.cpp
@@ -221,18 +221,14 @@ main (int argc, char *argv[])
std::unique_ptr<ConnectionFileDescriptor> conn_ap(new ConnectionFileDescriptor());
if (conn_ap.get())
{
- std::auto_ptr<ConnectionFileDescriptor> conn_ap(new ConnectionFileDescriptor());
- if (conn_ap.get())
- {
- std::string connect_url ("listen://");
- connect_url.append(host_and_port);
+ std::string connect_url ("listen://");
+ connect_url.append(host_and_port);
- printf ("Listening for a connection on %s...\n", host_and_port);
- if (conn_ap->Connect(connect_url.c_str(), &error) == eConnectionStatusSuccess)
- {
- printf ("Connection established.\n");
- gdb_server.SetConnection (conn_ap.release());
- }
+ printf ("Listening for a connection on %s...\n", host_and_port);
+ if (conn_ap->Connect(connect_url.c_str(), &error) == eConnectionStatusSuccess)
+ {
+ printf ("Connection established.\n");
+ gdb_server.SetConnection (conn_ap.release());
}
}
OpenPOWER on IntegriCloud