2
所以我在GDB运行的程序,并予设定的观察点一定变量(一个对象的指针,具体而言),它存在于地址0x6030b0:GDB观察点在未检测变化可变
(gdb) wa (TNode<UCSDStudent> **)0x6030b0
Watchpoint 7: (TNode<UCSDStudent> **)0x6030b0
我知道指针的值:
(gdb) p/x *((TNode<UCSDStudent> **)0x6030b0)
$5 = 0x603130
我在线路115设置断点,我的程序结束。然后我继续这个断点:
(gdb) c
Continuing.
No more reverse-execution history.
main (argc=2, argv=0x7fffffffd9a8) at Driver.c:115
115 ST.Write(cout << "\nFinal Symbol Table:\n");
这意味着指针的值没有改变,因为gdb没有停在任何观察点。我现在打印指针的值:
(gdb) p/x *((TNode`<UCSDStudent>` **)0x6030b0)
$6 = 0x0
但是,指针的值显然确实发生了变化。什么可以解释这一点?
谢谢。