新手,GDB调试C++程序时,watch的设置问题。

opponent2012 2012-01-13 12:24:25
我在line8设置了断点,但是设置watch时始终不对,求指点
(gdb) file 练习34
Load new symbol table from "/home/zhaoyu/文档/练习34"? (y or n) y
Reading symbols from /home/zhaoyu/文档/练习34...done.
(gdb) run
Starting program: /home/zhaoyu/文档/练习34
45
[Inferior 1 (process 17429) exited normally]
(gdb) list
6 for(;i!=n;i++)
7 {
8 sum+=i;
9 }
10 return sum;
11 }
12 int main(void)
13 {
14 int Sum(int n);
15 cout<<Sum(10)<<endl;
(gdb) list
16 }
(gdb) break 8
Breakpoint 1 at 0x804860a: file 练习34.cpp, line 8.
(gdb) watch sum
No symbol "sum" in current context.
...全文
280 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
peng_weida 2012-01-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 opponent2012 的回复:]
引用 4 楼 peng_weida 的回复:

你得先将程序运行到断点处,然后设置watch

原来如此!
[/Quote]
我刚学的,呵呵
opponent2012 2012-01-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 peng_weida 的回复:]

你得先将程序运行到断点处,然后设置watch
[/Quote]
原来如此!
peng_weida 2012-01-13
  • 打赏
  • 举报
回复
你得先将程序运行到断点处,然后设置watch
opponent2012 2012-01-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mscf 的回复:]

源代码贴出来给你watch,不行用display sum也是可以的
[/Quote]
我故意将前n项求和的最后一项漏掉,希望通过调试找出来。我在函数的for语句设置了break,但是watch怎么都不行,这是为什么?
opponent2012 2012-01-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mscf 的回复:]

源代码贴出来给你watch,不行用display sum也是可以的
[/Quote]
我才刚学GDB,主要是通过看贴学的,自己随便写了个程序测试下。不知道watch有什么技巧?
#include<iostream>
using namespace std;
int Sum(int n)
{
int i=0,sum=0;
for(;i!=n;i++)
{
sum+=i;
}
return sum;
}
int main(void)
{
int Sum(int n);
cout<<Sum(10)<<endl;
}

薛定谔之死猫 2012-01-13
  • 打赏
  • 举报
回复
源代码贴出来给你watch,不行用display sum也是可以的

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧