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命令,结果是这样的:
让人困惑的是:结果显示成这样,是表示当前显示的栈里面有内容呢,还是没有内容?
如果有内容,为什么显示的结果和之后那个断点的结果显示不一样?
比较一下就能看出,后面这个显示栈里面内容的时候,变量是分配了内存地址的,而第一个断点这里就没有。