标题:GDB测试C程序的一个问题
取消只看楼主
stuyangzheng
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2020-4-8
结帖率:100%
已结贴  问题点数:20 回复次数:1 
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命令,结果是这样的:

让人困惑的是:结果显示成这样,是表示当前显示的栈里面有内容呢,还是没有内容?
如果有内容,为什么显示的结果和之后那个断点的结果显示不一样?

比较一下就能看出,后面这个显示栈里面内容的时候,变量是分配了内存地址的,而第一个断点这里就没有。
搜索更多相关主题的帖子: 结果 int result 内容 显示 
2020-04-08 20:33
stuyangzheng
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2020-4-8
得分:0 
回复 3楼 wmf2014
嗯,感谢感谢,主要是对bt命令的理解没到位。https://blog.,这篇文章里面有关于bt命令的详细解释。
2020-04-09 09:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-500949-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.312563 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved