1*99451b44SJordan Rupprecht #include <stdio.h> 2*99451b44SJordan Rupprecht #include <string.h> 3*99451b44SJordan Rupprecht #include <unistd.h> 4*99451b44SJordan Rupprecht 5*99451b44SJordan Rupprecht int main(int argc,char ** argv)6*99451b44SJordan Rupprechtmain (int argc, char **argv) 7*99451b44SJordan Rupprecht { 8*99451b44SJordan Rupprecht lldb_enable_attach(); 9*99451b44SJordan Rupprecht 10*99451b44SJordan Rupprecht int do_crash = 0; 11*99451b44SJordan Rupprecht int do_wait = 0; 12*99451b44SJordan Rupprecht 13*99451b44SJordan Rupprecht int idx; 14*99451b44SJordan Rupprecht for (idx = 1; idx < argc; idx++) 15*99451b44SJordan Rupprecht { 16*99451b44SJordan Rupprecht if (strcmp(argv[idx], "CRASH") == 0) 17*99451b44SJordan Rupprecht do_crash = 1; 18*99451b44SJordan Rupprecht if (strcmp(argv[idx], "WAIT") == 0) 19*99451b44SJordan Rupprecht do_wait = 1; 20*99451b44SJordan Rupprecht } 21*99451b44SJordan Rupprecht printf("PID: %d END\n", getpid()); 22*99451b44SJordan Rupprecht 23*99451b44SJordan Rupprecht if (do_wait) 24*99451b44SJordan Rupprecht { 25*99451b44SJordan Rupprecht int keep_waiting = 1; 26*99451b44SJordan Rupprecht while (keep_waiting) 27*99451b44SJordan Rupprecht { 28*99451b44SJordan Rupprecht printf ("Waiting\n"); 29*99451b44SJordan Rupprecht sleep(1); // Stop here to unset keep_waiting 30*99451b44SJordan Rupprecht } 31*99451b44SJordan Rupprecht } 32*99451b44SJordan Rupprecht 33*99451b44SJordan Rupprecht if (do_crash) 34*99451b44SJordan Rupprecht { 35*99451b44SJordan Rupprecht char *touch_me_not = (char *) 0; 36*99451b44SJordan Rupprecht printf ("About to crash.\n"); 37*99451b44SJordan Rupprecht touch_me_not[0] = 'a'; 38*99451b44SJordan Rupprecht } 39*99451b44SJordan Rupprecht printf ("Got there on time and it did not crash.\n"); 40*99451b44SJordan Rupprecht return 0; 41*99451b44SJordan Rupprecht } 42