(gdb) start
Temporary breakpoint 1 at 0x1161: file 1.c, line 9.
Starting program: /home/allan/a.out
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Temporary breakpoint 1, main () at 1.c:9
9 struct foo *foo = malloc(sizeof *foo);
(gdb) watch foo->bar
Hardware watchpoint 2: foo->bar
(gdb) c
Continuing.
Hardware watchpoint 2: foo->bar
Old value = -134434816
New value = 0
main () at 1.c:10
10 foo->bar = 42;
(gdb) c
Continuing.
Hardware watchpoint 2: foo->bar
Old value = 0
New value = 42
main () at 1.c:11
11 printf("bar=%d\n", foo->bar);
(gdb) c
Continuing.
bar=42
Hardware watchpoint 2: foo->bar
Old value = 42
New value = 1
main () at 1.c:13
13 printf("bar=%d\n", foo->bar);
(gdb) c
Continuing.
bar=1
Hardware watchpoint 2: foo->bar
Old value = 1
New value = 1431655769
1条答案
按热度按时间332nm8kg1#
我很好奇,所以这里有一个例子程序:
字符串
和一个使用watch的gdb会话:
型