This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: gdb shows source line multiple times before executing !!
On Thu, Jul 24, 2003 at 08:21:02PM +0530, mohanlal jangir wrote:
>
> > Because GCC splits the code for the line into multiple parts. Part of
> > the line has executed when you step over it, but it may not be
> > immediately obvious how. For instance, given:
> > a = b + c;
> > the first time you step over it may load b and c from memory; the
> > second time may add them; and only the third will store the result into
> > a.
> hmm... but sometimes it behaves even worse. For example there are two lines
> a = b + c;
> d = e + f;
> then first gdb shows line a = b + c; then d = e + f and then again a = b +
> c. And while showing d = e + f first time if I try to print value of a, it
> will be some uninitialised (that indicates that a = b + c has not been
> executed). Then on next "next" command I will see line a = b +c again and
> then valute of a will be correct one.
Then there's some other cleanup to be done that the compiler hasn't
finished with yet. I recommend either not worrying about it, or
looking at the assembly to understand what's going on.
>
> > > mohanlal jangir wrote:
> > >
> > >While single stepping with gdb, quite frequently I see sorce lines
> > appearing
> > >multiple times i.e. gdb shows some line that will be executed on command
> > >"next", but that is actully not. After next "next" command, I see same
> > line
> > >appearing. This happens two or three times and then finally that line is
> > >executed.
>
>
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer