- 论坛徽章:
- 3
|
我这里watch是对一个局部变量的。
- (gdb) l
- 1 int j=12;
- 2 int main()
- 3 {
- 4 int a=10;//a=10
- 5 a=a+10;//a=20
- 6 j += 1;
- 7 return 0;
- 8 }
- 9
- (gdb) b 5
- Breakpoint 1 at 0x804839c: file 2.c, line 5.
- (gdb) r
- Starting program: /tmp/a.out
- Breakpoint 1, main () at 2.c:5
- 5 a=a+10;//a=20
- (gdb) watch a
- Hardware watchpoint 2: a
- (gdb) c
- Continuing.
- Watchpoint 2 deleted because the program has left the block in
- which its expression is valid.
- 0xb7e0d26b in exit () from /lib/libc.so.6
复制代码
一直到程序结束的时候进程都没有中止过。
而以下C语言代码:
- int j=12;
- int main()
- {
- int a=10;//a=10
- a=a+10;//a=20
- a=a*2;//a=40
- j += 1;
- return 0;
- }
复制代码
以下是gdb过程
- (gdb) l
- 1 int j=12;
- 2 int main()
- 3 {
- 4 int a=10;//a=10
- 5 a=a+10;//a=20
- 6 a=a*2;//a=40
- 7 j += 1;
- 8 return 0;
- 9 }
- 10
- (gdb) b 5
- Breakpoint 1 at 0x804839c: file 2.c, line 5.
- (gdb) r
- Starting program: /tmp/a.out
- Breakpoint 1, main () at 2.c:5
- 5 a=a+10;//a=20
- (gdb) print a
- $1 = 10
- (gdb) watch a
- Hardware watchpoint 2: a
- (gdb) c
- Continuing.
- Hardware watchpoint 2: a
- Old value = 10
- New value = 40
- main () at 2.c:7
- 7 j += 1;
复制代码
stop没有停在a=a*2;这一句上...
[ 本帖最后由 cjaizss 于 2007-5-14 21:16 编辑 ] |
|