Так я бегу программу в 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
Однако значение указателя явно изменилось. Что это может объяснить?
Спасибо.