|  | #include <stdlib.h> | 
|  | #include <string.h> | 
|  |  | 
|  | /* Test various kinds of stepping. | 
|  | */ | 
|  | int myglob = 0; | 
|  |  | 
|  | int callee() { | 
|  | myglob++; return 0; | 
|  | } | 
|  |  | 
|  | /* A structure which, we hope, will need to be passed using memcpy.  */ | 
|  | struct rhomboidal { | 
|  | int rather_large[100]; | 
|  | }; | 
|  |  | 
|  | void | 
|  | large_struct_by_value (struct rhomboidal r) | 
|  | { | 
|  | myglob += r.rather_large[42]; /* step-test.exp: arrive here 1 */ | 
|  | } | 
|  |  | 
|  | int main () { | 
|  | int w,x,y,z; | 
|  | int a[10], b[10]; | 
|  |  | 
|  | /* Test "next" and "step" */ | 
|  | w = 0; | 
|  | x = 1; | 
|  | y = 2; | 
|  | z = 3; | 
|  | w = w + 2; | 
|  | x = x + 3; | 
|  | y = y + 4; | 
|  | z = z + 5; | 
|  |  | 
|  | /* Test that "next" goes over a call */ | 
|  | callee(); /* OVER */ | 
|  |  | 
|  | /* Test that "step" doesn't */ | 
|  | callee(); /* INTO */ | 
|  |  | 
|  | /* Test "stepi" */ | 
|  | a[5] = a[3] - a[4]; | 
|  | callee(); /* STEPI */ | 
|  |  | 
|  | /* Test "nexti" */ | 
|  | callee(); /* NEXTI */ | 
|  |  | 
|  | y = w + z; | 
|  |  | 
|  | { | 
|  | struct rhomboidal r; | 
|  | memset (r.rather_large, 0, sizeof (r.rather_large)); | 
|  | r.rather_large[42] = 10; | 
|  | large_struct_by_value (r);  /* step-test.exp: large struct by value */ | 
|  | } | 
|  |  | 
|  | exit (0); | 
|  | } | 
|  |  |