GDB测试C程序的一个问题
程序代码:
#include<stdio.h>
int func(int n)
{
int sum = 0,i;
for (i=0; i<=n; i++)
{
sum+=i;
}
return sum;
}
main()
{
int i;
long result = 0;
for (i=1;i<=100;i++)
{
result += i;
}
printf("[1-100] = %d \n", result);
printf("[1-250] = %d \n", func(250));
}
在main函数中的long result=0那一行和函数func中设置断点:
然后输入bt命令,结果是这样的:
让人困惑的是:结果显示成这样,是表示当前显示的栈里面有内容呢,还是没有内容?
如果有内容,为什么显示的结果和之后那个断点的结果显示不一样?
比较一下就能看出,后面这个显示栈里面内容的时候,变量是分配了内存地址的,而第一个断点这里就没有。




