This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Wrong Reverse result


I have reproduced this issue and find out the cause.

infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x8048361
infrun: stepped into subroutine
infrun: inserting step-resume breakpoint at 0x8048349

stop_stepping is better.

infrun: resume (step=0, signal=0), trap_expected=0
infrun: prepare_to_wait
infrun: target_wait (-1, status) =
infrun:   10798 [process 10798],
infrun:   status->kind = no-history
infrun: infwait_normal_state

No more reverse-execution history.
infrun: stop_stepping
main () at 1.c:7

On Thu, Jun 11, 2009 at 00:49, Marc Khouzam<marc.khouzam@ericsson.com> wrote:
> Hi,
>
> I'm getting a weird behaviour in reverse, where GDB
> jumps to far backwards.
>
> I have GDB HEAD from two weeks ago with the three
> missing PRrecord patches applied (that were pinged
> by Hui this very week).

All of patches are not for prec, they are for reverse.

>
> I'm running on Ubuntu.
> Is it me or can someone reproduce it?
> (It happened during my presentation at the GCC summit,
> so I have witnesses :-))

I am not sure Michael in GCC summit or not.  If so, you can let he fix
it at there directly.  :)

Thanks for your help.

Hui

>
> Thanks
>
> Marc
>
> GNU gdb (GDB) 6.8.50.20090522-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 ? ? ? void foo() {
> 2 ? ? ? ? ? return;
> 3 ? ? ? }
> 4
> 5 ? ? ? int main() {
> 6
> 7 ? ? ? ? ? ? ? foo(); // 1
> 8 ? ? ? ? ? ? ? foo(); // 2
> 9 ? ? ? ? ? ? ? foo(); // 3
> 10
> (gdb) l
> 11 ? ? ? ? ? ? ?return 0;
> 12 ? ? ?}
> (gdb) start
> Temporary breakpoint 1 at 0x80483f7: file r.c, line 7.
> Starting program: /home/marc/testing/a.out
>
> Temporary breakpoint 1, main () at r.c:7
> 7 ? ? ? ? ? ? ? foo(); // 1
> Current language: ?auto; currently c++
> (gdb) record
> (gdb) n
> 8 ? ? ? ? ? ? ? foo(); // 2
> (gdb) n
> 9 ? ? ? ? ? ? ? foo(); // 3
> (gdb) n
> 11 ? ? ? ? ? ? ?return 0;
> (gdb) rn
> 9 ? ? ? ? ? ? ? foo(); // 3
> (gdb) s
> foo () at r.c:3
> 3 ? ? ? }
> (gdb) rn
>
> No more reverse-execution history.
> main () at r.c:7
> 7 ? ? ? ? ? ? ? foo(); // 1
>
> ======== This is weird. ?Why does it go back to the top?
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]