RE: [RFA] Patch to fix "reverse-next" command error

Marc Khouzam
2009-02-13T15:23:26Z

> -----Original Message-----
> From: teawater [mailto:teawater@gmail.com]
> Sent: Wednesday, February 11, 2009 9:59 PM
> To: Marc Khouzam
> Cc: Michael Snyder; Pedro Alves; gdb-patches@sourceware.org
> Subject: Re: [RFA] Patch to fix "reverse-next" command error
>
> Hi Marc,
>
> I can't reproduce this issue with or without
> "fix-reverse-plt-error.txt".

> Could you try it with CVS-head version and new Precord patch
> in attachment?
>
> Thanks,
> Hui

Thanks for putting all the patches in a single attachement, it was
much easier like that. (there was no patch 4. Is it not needed
anymore?)

I'm still getting the bug.
I have HEAD from Feb 12th.
+ the Precord patches you sent.
+ fix-reverse-plt-error.txt
+ stopped.diff from Volodya (although it is not needed for this test)

I compile with
g++ (GCC) 4.1.2 20070115 (prerelease) (SUSE Linux)

My linux is (uname -a)
Linux camoc0002 2.6.16.53-0.16-smp #1 SMP Tue Oct 2 16:57:49 UTC 2007
i686 i686 i386 GNU/Linux

Again, here is the output.
Could it be related to my printf library?

GNU gdb (GDB) 6.8.50.20090212-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/>...
(gdb) l
1 #include <stdio.h>
2 int main()
3 {
4 char* cptr = "Thread 1";
5 int b[2] = {5,8};
6 b[0] = 6; b[1] = 9;
7 printf("Thread 1, loop \n");
8 printf("Thread 2, loop \n");
9 printf("Thread 3, loop \n");
10 return 1;
(gdb) b main
Breakpoint 1 at 0x8048485: file a.cc, line 4.
(gdb) r
Starting program: /local/home/lmckhou/testing/a.out

Breakpoint 1, main () at a.cc:4
4 char* cptr = "Thread 1";
(gdb) rec
(gdb) b 10
Breakpoint 2 at 0x80484cc: file a.cc, line 10.
(gdb) c
Continuing.
Thread 1, loop
Thread 2, loop
Thread 3, loop

Breakpoint 2, main () at a.cc:10
10 return 1;
(gdb) rs
9 printf("Thread 3, loop \n");
(gdb)
8 printf("Thread 2, loop \n");
(gdb)

No more reverse-execution history.
main () at a.cc:4
4 char* cptr = "Thread 1";