Example adb program: adbsamp3
The following sample program adbsamp3.c contains an infinite recursion of subfunction calls.
If you run this program to completion, it causes a memory fault error and quits.
int fcnt,gcnt,hcnt;
h(x,y)
int x,y;
{
int hi;
register int hr;
hi = x+1;
hr = x-y+1;
hcnt++;
hj:
f(hr,hi);
}
g(p,q)
int p,q;
{
int gi;
register int gr;
gi = q-p;
gr = q-p+1;
gcnt++;
gj:
h(gr,gi);
}
f(a,b)
int a,b;
{
int fi;
register int fr;
fi = a+2*b;
fr = a+b;
fcnt++;
fj:
g(fr,fi);
}
main()
{
f(1,1);
}
Compile the program using the cc command to create the adbsamp3 file with the following command:
cc -g adbsamp3.c -o adbsamp3
To start the debug session, enter:
adb adbsamp3