This is the mail archive of the gdb@sources.redhat.com 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: 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


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