xref: /openbsd-src/gnu/usr.bin/binutils/gdb/testsuite/gdb.base/attach2.c (revision b725ae7711052a2233e31a66fefb8a752c388d7a)
1*b725ae77Skettenis /* This program is intended to be started outside of gdb, and then
2*b725ae77Skettenis    attached to by gdb.  Thus, it simply spins in a loop.  The loop
3*b725ae77Skettenis    is exited when & if the variable 'should_exit' is non-zero.  (It
4*b725ae77Skettenis    is initialized to zero in this program, so the loop will never
5*b725ae77Skettenis    exit unless/until gdb sets the variable to non-zero.)
6*b725ae77Skettenis    */
7*b725ae77Skettenis #include <stdio.h>
8*b725ae77Skettenis #include <stdlib.h>
9*b725ae77Skettenis #include <unistd.h>
10*b725ae77Skettenis 
11*b725ae77Skettenis int  should_exit = 0;
12*b725ae77Skettenis 
main()13*b725ae77Skettenis int main ()
14*b725ae77Skettenis {
15*b725ae77Skettenis   int  local_i = 0;
16*b725ae77Skettenis 
17*b725ae77Skettenis   sleep( 10 ); /* System call causes register fetch to fail */
18*b725ae77Skettenis                /* This is a known HPUX "feature"            */
19*b725ae77Skettenis   while (! should_exit)
20*b725ae77Skettenis     {
21*b725ae77Skettenis       local_i++;
22*b725ae77Skettenis     }
23*b725ae77Skettenis   return (0);
24*b725ae77Skettenis }
25