xref: /llvm-project/lldb/test/API/driver/batch_mode/main.c (revision 99451b4453688a94c6014cac233d371ab4cc342d)
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 Rupprecht main (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