This is the mail archive of the
gdb-prs@sources.redhat.com
mailing list for the GDB project.
Re: gdb/339: reread.exp fails on x86-linux
- From: Jim Blandy <jimb at zwingli dot cygnus dot com>
- To: nobody at sources dot redhat dot com
- Cc: gdb-prs at sources dot redhat dot com,
- Date: 13 Feb 2002 22:28:02 -0000
- Subject: Re: gdb/339: reread.exp fails on x86-linux
- Reply-to: Jim Blandy <jimb at zwingli dot cygnus dot com>
The following reply was made to PR gdb/339; it has been noted by GNATS.
From: Jim Blandy <jimb@zwingli.cygnus.com>
To: kettenis@gnu.org
Cc: gdb-gnats@sources.redhat.com, geoffk@redhat.com
Subject: Re: gdb/339: reread.exp fails on x86-linux
Date: 13 Feb 2002 17:28:26 -0500
kettenis@chello.nl writes:
> Hmm, I can reproduce it on FreeBSD 4.4, both with FreeBSD's standard
> compiler (GCC 2.95.3) and a GCC 3.1 snapshot that's a few weeks old.
>
> It seems to be a line numbering problem. The test expects a
> breakpoint at line number 14 after rereading, but instead it gets one
> at line number 13:
>
> Breakpoint 2 at 0x80484a0: file ../../../../src/src/gdb/testsuite/gdb.base/reread1.c, line 13.
>
> The strange thing is that after restarting the program GDB does report
> the breakpoint to be at line 14:
>
> Breakpoint 2 at 0x80484a3: file ../../../../src/src/gdb/testsuite/gdb.base/reread1.c, line 14.
>
> Note that if GDB really didn't reread the executable the breakpoint
> would be at line number 9.
>
> I have no real clue about what's wrong :-(. Is it that GDB reads
> additional debug info upon restarting the program and therefore is
> able to more acurately describe the location of the breakpoint?
Have you made sure it doesn't have anything to do with prologue
analysis? Make sure that SKIP_PROLOGUE is returning the same thing
both before and after re-reading.
Anyway, the problem I discovered before, and tried to fix with that
patch, was that GDB was reading debug info from the new executable,
but still reading code (for prologue analysis) from the old
executable, so prologue analysis would get confused.