This is the mail archive of the insight@sourceware.org mailing list for the Insight 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: Bizarre GCC problem - how do I debug it?


On 08/06/2010 10:51 AM, Bruce Korb wrote:
On 08/06/10 10:24, David Daney wrote:
On 08/06/2010 10:19 AM, Bruce Korb wrote:
The problem seems to be that GDB thinks all the code belongs to a
single line of text.  At first, it was a file of mine, so I presumed
I had done something strange and passed it off.  I needed to do some
more debugging again and my "-g -O0" output still said all code
belonged to that one line.  So, I made a .i file and compiled that.
Different file, but the same problem.  The .i file contains the
correct preprocessor directives:

    # 309 "wrapup.c"
    static void
    done_check(void)
    {

but under gdb:

    (gdb) b done_check
    Breakpoint 5 at 0x40af44: file /usr/include/gmp.h, line 1661.

the break point *is* on the entry to "done_check", but the
source code displayed is line 1661 of gmp.h.  Not helpful.
Further, I cannot set break points on line numbers because
all code belongs to the one line in gmp.h.

Yes, for now I can debug in assembly code, but it isn't very easy.....

$ gcc --version
gcc (SUSE Linux) 4.5.0 20100604 [gcc-4_5-branch revision 160292]
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There
is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

I've googled for:  gcc|gdb wrong source file
which only yields how to examine source files in gdb.


Which version of GDB?


IIRC with GCC-4.5 you need a very new version of GDB. This page:

http://gcc.gnu.org/gcc-4.5/changes.html

indicates that GDB 7.0 or later would be good candidates.

That seems to work. There are one or two or three bugs then. Either gdb needs to recognize an out of sync object code

It cannot do this as it was released before GCC-4.5.


, or else
gcc needs to produce object code that forces gdb to object in a way
more obvious than just deciding upon the wrong file and line --
or both.  I simply installed the latest openSuSE and got whatever
was supplied.  It isn't reasonable to expect folks to go traipsing
through upstream web sites looking for "changes.html" files ....

And, of course, the insight stuff needs to incorporate the latest
and greatest gdb.  (I don't use ddd because it is _completely_ non-
intuitive.)


My understanding is that whoever packages GCC and GDB for a particular distribution is responsible to make sure that they work together.


In your case it looks like that didn't happen.

David Daney



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