PRecord sets memory even when it says it did not

Marc Khouzam
2009-09-14T01:55:28Z

Hi Hui,

I'm seeing PRecord changing memory even though I answer
the query as to not change it. Please see below.

Thanks

Marc

GNU gdb (GDB) 6.8.50.20090913-cvs
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/marc/testing/a.out...done.
(gdb) l
1 int main() {
2 int a = 1;
3 int b = 10;
4
5 a++;
6 b++;
7
8 return a;
9 }
10
(gdb) start
Temporary breakpoint 1 at 0x80483f5: file b.cc, line 2.
Starting program: /home/marc/testing/a.out
re
Temporary breakpoint 1, main () at b.cc:2
2 int a = 1;
(gdb) record
(gdb) n
3 int b = 10;
(gdb) n
5 a++;
(gdb) n
6 b++;
(gdb) rn
5 a++;
(gdb) p a
$1 = 1
(gdb) set var a = 8
Because GDB is in replay mode, writing to memory will make the execution log unusable from this point onward. Write memory at address 0xbffff6a0?(y or [n]) n
Process record canceled the operation.
(gdb) p a
$2 = 8