GDB doesn't show the correct line

Daniel Jacobowitz drow@false.org
Mon Jun 21 17:59:00 GMT 2004


On Mon, Jun 21, 2004 at 07:55:59PM +0200, Otto Wyss wrote:
> Daniel Jacobowitz wrote:
> > 
> > On Sun, Jun 20, 2004 at 09:24:48PM +0200, Otto Wyss wrote:
> > > Since a few days GDB (6.1-debian) offsets the shown line by about 3
> > > lines. when I set a breakpoint at a function name of a class (C++) it
> > > stops and shows the line 3 more down. When I now step through (next)
> > 
> > Not a known problem - test case?
> > 
> My full source is here
> "http://cvs.sourceforge.net/viewcvs.py/wyodesktop/wyoDesktop/loginapp/src/app.cpp?view=markup"
> but it's probably not usable as a test case. The 3 line offset is from
> the first function call "App::OnInit".
> 
> > Usually this means you've confused GDB about what version of a source
> > file it should be opening.
> > 
> It's definitely not my source since I've built my app and all the
> wxWidgets library again. Also I just tried another of my apps (with lots
> of wxWidgets functions) and this behaves correctly. Well that means GDB
> works correct except in one case.
> 
> I can only speculate that it's because of one of the standard headers
> which are unique to this program. But they are from an ordinary
> Debian/sarge system. How can I detect further where the offset is introduced?

The only things that I can recommend:
  - Look at the preprocessor output (gcc -E).  See if there are missing
    #line directives (usually just "# <num>" in preprocessor output).
    The syntax of these things is really hard to read.
  - Look at the debug info with readelf -wl and compare it to the
    object code.

It sounds like it is more likely to be a problem with GCC's output than
GDB's parsing.

-- 
Daniel Jacobowitz



More information about the Gdb mailing list