1*b725ae77Skettenis #include <stdlib.h> 2*b725ae77Skettenis #include <string.h> 3*b725ae77Skettenis 4*b725ae77Skettenis /* Test various kinds of stepping. 5*b725ae77Skettenis */ 6*b725ae77Skettenis int myglob = 0; 7*b725ae77Skettenis callee()8*b725ae77Skettenisint callee() { 9*b725ae77Skettenis myglob++; return 0; 10*b725ae77Skettenis } 11*b725ae77Skettenis 12*b725ae77Skettenis /* A structure which, we hope, will need to be passed using memcpy. */ 13*b725ae77Skettenis struct rhomboidal { 14*b725ae77Skettenis int rather_large[100]; 15*b725ae77Skettenis }; 16*b725ae77Skettenis 17*b725ae77Skettenis void large_struct_by_value(struct rhomboidal r)18*b725ae77Skettenislarge_struct_by_value (struct rhomboidal r) 19*b725ae77Skettenis { 20*b725ae77Skettenis myglob += r.rather_large[42]; /* step-test.exp: arrive here 1 */ 21*b725ae77Skettenis } 22*b725ae77Skettenis main()23*b725ae77Skettenisint main () { 24*b725ae77Skettenis int w,x,y,z; 25*b725ae77Skettenis int a[10], b[10]; 26*b725ae77Skettenis 27*b725ae77Skettenis /* Test "next" and "step" */ 28*b725ae77Skettenis w = 0; 29*b725ae77Skettenis x = 1; 30*b725ae77Skettenis y = 2; 31*b725ae77Skettenis z = 3; 32*b725ae77Skettenis w = w + 2; 33*b725ae77Skettenis x = x + 3; 34*b725ae77Skettenis y = y + 4; 35*b725ae77Skettenis z = z + 5; 36*b725ae77Skettenis 37*b725ae77Skettenis /* Test that "next" goes over a call */ 38*b725ae77Skettenis callee(); /* OVER */ 39*b725ae77Skettenis 40*b725ae77Skettenis /* Test that "step" doesn't */ 41*b725ae77Skettenis callee(); /* INTO */ 42*b725ae77Skettenis 43*b725ae77Skettenis /* Test "stepi" */ 44*b725ae77Skettenis a[5] = a[3] - a[4]; 45*b725ae77Skettenis callee(); /* STEPI */ 46*b725ae77Skettenis 47*b725ae77Skettenis /* Test "nexti" */ 48*b725ae77Skettenis callee(); /* NEXTI */ 49*b725ae77Skettenis 50*b725ae77Skettenis y = w + z; 51*b725ae77Skettenis 52*b725ae77Skettenis { 53*b725ae77Skettenis struct rhomboidal r; 54*b725ae77Skettenis memset (r.rather_large, 0, sizeof (r.rather_large)); 55*b725ae77Skettenis r.rather_large[42] = 10; 56*b725ae77Skettenis large_struct_by_value (r); /* step-test.exp: large struct by value */ 57*b725ae77Skettenis } 58*b725ae77Skettenis 59*b725ae77Skettenis exit (0); 60*b725ae77Skettenis } 61*b725ae77Skettenis 62