| #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); |
| } |
| |