Added support for attaching to a remote debug server with the new command:
(lldb) process connect <remote-url>
Currently when you specify a file with the file command it helps us to find
a process plug-in that is suitable for debugging. If you specify a file you
can rely upon this to find the correct debugger plug-in:
% lldb a.out
Current executable set to 'a.out' (x86_64).
(lldb) process connect connect://localhost:2345
...
If you don't specify a file, you will need to specify the plug-in name that
you wish to use:
% lldb
(lldb) process connect --plugin process.gdb-remote connect://localhost:2345
Other connection URL examples:
(lldb) process connect connect://localhost:2345
(lldb) process connect tcp://127.0.0.1
(lldb) process connect file:///dev/ttyS1
We are currently treating the "connect://host:port" as a way to do raw socket
connections. If there is a URL for this already, please let me know and we
will adopt it.
So now you can connect to a remote debug server with the ProcessGDBRemote
plug-in. After connection, it will ask for the pid info using the "qC" packet
and if it responds with a valid process ID, it will be equivalent to attaching.
If it response with an error or invalid process ID, the LLDB process will be
in a new state: eStateConnected. This allows us to then download a program or
specify the program to run (using the 'A' packet), or specify a process to
attach to (using the "vAttach" packets), or query info about the processes
that might be available.
llvm-svn: 124846
diff --git a/lldb/source/Core/State.cpp b/lldb/source/Core/State.cpp
index a68ac73..bf0ef33 100644
--- a/lldb/source/Core/State.cpp
+++ b/lldb/source/Core/State.cpp
@@ -24,6 +24,7 @@
{
case eStateInvalid: return "invalid";
case eStateUnloaded: return "unloaded";
+ case eStateConnected: return "connected";
case eStateAttaching: return "attaching";
case eStateLaunching: return "launching";
case eStateStopped: return "stopped";
@@ -50,6 +51,7 @@
case eStateStepping:
return true;
+ case eStateConnected:
case eStateDetached:
case eStateInvalid:
case eStateUnloaded:
@@ -69,6 +71,7 @@
switch (state)
{
case eStateInvalid:
+ case eStateConnected:
case eStateAttaching:
case eStateLaunching:
case eStateRunning: