This is the mail archive of the
gdb@sourceware.cygnus.com
mailing list for the GDB project.
Re: gdb seg violation during print command
- To: dan at cgsoftware dot com
- Subject: Re: gdb seg violation during print command
- From: Mark Kettenis <kettenis at wins dot uva dot nl>
- Date: Thu, 4 May 2000 00:43:06 +0200
- CC: dan at cgsoftware dot com, gdb at sourceware dot cygnus dot com
- References: <200005031637.MAA25467@ll.mit.edu><200005031759.TAA18350@landau.wins.uva.nl><snvze4ib.fsf@dynamic-addr-88-117.resnet.rochester.edu><200005032105.e43L5U300694@delius.kettenis.local> <g0rze3w2.fsf@dynamic-addr-88-117.resnet.rochester.edu>
Reply-To: dan@cgsoftware.com
Cc: dan@cgsoftware.com, gdb@sourceware.cygnus.com
From: Daniel Berlin <dan@cgsoftware.com>
Date: 03 May 2000 17:10:37 -0400
User-Agent: Gnus/5.0805 (Gnus v5.8.5) XEmacs/21.1 (Canyonlands)
Content-Type: text/plain; charset=us-ascii
Mark Kettenis <kettenis@wins.uva.nl> writes:
> >
>
> What version of gdb is this really? IE when is it from?
> (We've had 20000204 there forever).
>
> April 25. But I just tested it with a GDB compiled from sources
> checked out of CVS half an our ago. No difference.
Okay. And you said egcs 1.1.2, right?
That's what it is according to the "Timeline" on gcc.gnu.org :-).
Please "set debug overload 1" and retry, and send me the results.
sh-2.03$ ./gdb /tmp/test
GNU gdb 20000204
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.6"...
Setting up the environment for debugging gdb.
.gdbinit:5: Error in sourced command file:
Function "internal_error" not defined.
(gdb) set debug overload 1
(gdb) b main
Breakpoint 1 at 0x1a318: file test.cc, line 9.
(gdb) r
Starting program: /tmp/test
Breakpoint 1, main () at test.cc:9
9 {
(gdb) p tteesstt1(1)
Overloaded function instance tteesstt11(int) # of parms 0
...Badness @ 0 : 100
Overload resolution champion is 0, ambiguous? 0
Cannot resolve function tteesstt11 to any overloaded instance
(gdb) quit
The program is running. Exit anyway? (y or n) y
Does that tell you anything?
I suspect the problem is that that version of egcs is marking types with
the wrong sign in the debug info in certain cases, and the
rank_one_type code isn't handling the specific case, and defaulting to
saying it's an incompatible overload.
I ran into this problem once before, and had patches to deal with
these specific comparisons in rank_one_type, but i seem to have lost
them during a file system screwup (I did them in early january).
They were trivial, and i can redo them.
Well, if you can easily fix this, go ahead. Otherwise it might be
better to concentrate your effeorts on improving support for compilers
that don't have this bug.
Mark