首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gdb、break与tbreak和watchpoint

gdb、break与tbreak和watchpoint
EN

Stack Overflow用户
提问于 2011-06-06 19:52:31
回答 1查看 1.9K关注 0票数 1

谁能告诉我在观察点方面break和tbreak有什么不同?

A有一个简单的测试代码:

代码语言:javascript
复制
#include <stdlib.h>
#include <stdio.h>

int main(int argc, char **argv) {
  int toto;
  toto = 1;
  toto = 2;
  toto = 3;
  return (EXIT_SUCCESS);
}

当我在main()上使用break,然后看,toto似乎从0切换到2:

代码语言:javascript
复制
(gdb) break main
Breakpoint 1 at 0x804839a: file pp.c, line 6.
(gdb) r
Starting program: /mnt/mega20/SRC/C/gdb/pp 

Breakpoint 1, main (argc=1, argv=0xbffff4f4) at pp.c:6
6         toto = 1;
(gdb) watch toto 
Hardware watchpoint 2: toto
(gdb) c
Continuing.
Hardware watchpoint 2: toto

Old value = 0
New value = 2
main (argc=1, argv=0xbffff4f4) at pp.c:8
8         toto = 3;
(gdb)

但是当我使用tbreak时,手表似乎起作用了:

代码语言:javascript
复制
(gdb) tbreak main 
Temporary breakpoint 1 at 0x804839a: file pp.c, line 6.
(gdb) r
Starting program: /mnt/mega20/SRC/C/gdb/pp 

Temporary breakpoint 1, main (argc=1, argv=0xbffff4f4) at pp.c:6
6         toto = 1;
(gdb) watch toto 
Hardware watchpoint 2: toto
(gdb) c
Continuing.
Hardware watchpoint 2: toto

Old value = 0
New value = 1
main (argc=1, argv=0xbffff4f4) at pp.c:7
7         toto = 2;
(gdb) c
Continuing.
Hardware watchpoint 2: toto

Old value = 1
New value = 2
main (argc=1, argv=0xbffff4f4) at pp.c:8
8         toto = 3;
(gdb)

与start命令的结果相同,它也是有效的。

EN

回答 1

Stack Overflow用户

发布于 2013-04-23 17:18:05

我建议你阅读这篇文章:

Breakpoints and Watchpoints

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6251600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档