[Lldb-commits] [lldb] r195370 - Added the ability to launch the program that was specified on the command line and have it waiting for a NativeProcessProtocol to attach.
Greg Clayton
gclayton at apple.com
Thu Nov 21 10:58:35 PST 2013
Author: gclayton
Date: Thu Nov 21 12:58:35 2013
New Revision: 195370
URL: http://llvm.org/viewvc/llvm-project?rev=195370&view=rev
Log:
Added the ability to launch the program that was specified on the command line and have it waiting for a NativeProcessProtocol to attach.
Modified:
lldb/trunk/tools/lldb-gdbserver/lldb-gdbserver.cpp
Modified: lldb/trunk/tools/lldb-gdbserver/lldb-gdbserver.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-gdbserver/lldb-gdbserver.cpp?rev=195370&r1=195369&r2=195370&view=diff
==============================================================================
--- lldb/trunk/tools/lldb-gdbserver/lldb-gdbserver.cpp (original)
+++ lldb/trunk/tools/lldb-gdbserver/lldb-gdbserver.cpp Thu Nov 21 12:58:35 2013
@@ -93,7 +93,9 @@ main (int argc, char *argv[])
Error error;
int ch;
Debugger::Initialize();
-
+ ProcessLaunchInfo launch_info;
+ ProcessAttachInfo attach_info;
+
bool show_usage = false;
int option_error = 0;
// StreamSP stream_sp (new StreamFile(stdout, false));
@@ -183,7 +185,23 @@ main (int argc, char *argv[])
// Any arguments left over are for the the program that we need to launch. If there
// are no arguments, then the GDB server will start up and wait for an 'A' packet
// to launch a program, or a vAttach packet to attach to an existing process.
-
+ if (argc > 0)
+ {
+ // Launch the program specified on the command line
+ launch_info.SetArguments((const char **)argv, true);
+ launch_info.GetFlags().Set(eLaunchFlagDebug | eLaunchFlagStopAtEntry);
+ error = Host::LaunchProcess (launch_info);
+
+ if (error.Success())
+ {
+ printf ("Launched '%s' as process %" PRIu64 "...\n", argv[0], launch_info.GetProcessID());
+ }
+ else
+ {
+ fprintf (stderr, "error: failed to launch '%s': %s\n", argv[0], error.AsCString());
+ }
+ }
+
const bool is_platform = false;
GDBRemoteCommunicationServer gdb_server (is_platform);
More information about the lldb-commits
mailing list