[Lldb-commits] [lldb] r212698 - Get the inferior binary's name via the command line argument instead

Jason Molenda jmolenda at apple.com
Thu Jul 10 03:23:01 PDT 2014


Author: jmolenda
Date: Thu Jul 10 05:23:01 2014
New Revision: 212698

URL: http://llvm.org/viewvc/llvm-project?rev=212698&view=rev
Log:
Get the inferior binary's name via the command line argument instead
of hardcoding it.

Modified:
    lldb/trunk/test/api/multiple-debuggers/multi-process-driver.cpp

Modified: lldb/trunk/test/api/multiple-debuggers/multi-process-driver.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/api/multiple-debuggers/multi-process-driver.cpp?rev=212698&r1=212697&r2=212698&view=diff
==============================================================================
--- lldb/trunk/test/api/multiple-debuggers/multi-process-driver.cpp (original)
+++ lldb/trunk/test/api/multiple-debuggers/multi-process-driver.cpp Thu Jul 10 05:23:01 2014
@@ -1,3 +1,18 @@
+
+// This program creates NUMBER_OF_SIMULTANEOUS_DEBUG_SESSIONS of pthreads, 
+// creates an lldb Debugger on each thread, creates targets, inserts two
+// breakpoints, runs to the first breakpoint, backtraces, runs to the second
+// breakpoint, backtraces, kills the inferior process, closes down the
+// debugger.
+
+// The main thread keeps track of which pthreads have completed and which 
+// pthreads have completed successfully, and exits when all pthreads have
+// completed successfully, or our time limit has been exceeded.
+
+// This test file helps to uncover race conditions and locking mistakes
+// that are hit when lldb is being used to debug multiple processes
+// simultaneously.
+
 #include <stdio.h>
 #include <stdlib.h>
 
@@ -23,6 +38,8 @@ using namespace lldb;
 bool *completed_threads_array = 0;
 bool *successful_threads_array  = 0;
 
+const char *inferior_process_name = "testprog";
+
 bool
 wait_for_stop_event (SBProcess process, SBListener listener)
 {
@@ -88,7 +105,7 @@ void *do_one_debugger (void *in)
     if (debugger.IsValid ())
     {
         debugger.SetAsync (true);
-        SBTarget target = debugger.CreateTargetWithFileAndArch("testprog", "x86_64");
+        SBTarget target = debugger.CreateTargetWithFileAndArch(inferior_process_name, "x86_64");
         SBCommandInterpreter command_interp = debugger.GetCommandInterpreter();
         if (target.IsValid())
         {
@@ -202,7 +219,7 @@ void *do_one_debugger (void *in)
     return (void*) 1;
 }
 
-int main ()
+int main (int argc, char **argv)
 {
     SBDebugger::Initialize();
 
@@ -211,6 +228,11 @@ int main ()
     successful_threads_array = (bool *) malloc (sizeof (bool) * NUMBER_OF_SIMULTANEOUS_DEBUG_SESSIONS);
     memset (successful_threads_array, 0, sizeof (bool) * NUMBER_OF_SIMULTANEOUS_DEBUG_SESSIONS);
 
+    if (argc > 1 && argv[1] != NULL)
+    {
+        inferior_process_name = argv[1];
+    }
+
     for (uint64_t i = 0; i< NUMBER_OF_SIMULTANEOUS_DEBUG_SESSIONS; i++)
     {
         pthread_t thread;





More information about the lldb-commits mailing list