From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8483 invoked by alias); 14 Dec 2002 07:34:36 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 8475 invoked from network); 14 Dec 2002 07:34:36 -0000 Received: from unknown (HELO crack.them.org) (65.125.64.184) by sources.redhat.com with SMTP; 14 Dec 2002 07:34:36 -0000 Received: from nevyn.them.org ([66.93.61.169] ident=mail) by crack.them.org with asmtp (Exim 3.12 #1 (Debian)) id 18N8hA-0004JX-00; Sat, 14 Dec 2002 03:34:53 -0600 Received: from drow by nevyn.them.org with local (Exim 3.36 #1 (Debian)) id 18N6pa-00073Z-00; Sat, 14 Dec 2002 02:35:26 -0500 Date: Fri, 13 Dec 2002 23:34:00 -0000 From: Daniel Jacobowitz To: Jacques Le Normand Cc: Daniel Berlin , gdb@sources.redhat.com Subject: Re: casting in gdb Message-ID: <20021214073526.GA26547@nevyn.them.org> Mail-Followup-To: Jacques Le Normand , Daniel Berlin , gdb@sources.redhat.com References: <002301c2a270$e82f3540$c11ffea9@ehville> <2ADB5EBD-0EB0-11D7-8880-000393575BCC@dberlin.org> <20021213164713.GA20018@nevyn.them.org> <001301c2a2df$e2a42490$c11ffea9@ehville> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <001301c2a2df$e2a42490$c11ffea9@ehville> User-Agent: Mutt/1.5.1i X-SW-Source: 2002-12/txt/msg00206.txt.bz2 On Fri, Dec 13, 2002 at 02:43:17PM -0500, Jacques Le Normand wrote: > here you go, thanks for lending a hand... > > [countchocula@chocoland countchocula]$ g++ -ggdb test.cpp -o test.o > [countchocula@chocoland countchocula]$ gdb test.o > GNU gdb Red Hat Linux (5.2.1-4) > Copyright 2002 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 "i386-redhat-linux"... > (gdb) b 10 > Breakpoint 1 at 0x80486f5: file test.cpp, line 10. > (gdb) r > Starting program: /home/countchocula/test.o > > Breakpoint 1, main () at test.cpp:10 > 10 a.push_back(2); > (gdb) p a[0] > One of the arguments you tried to pass to operator[] could not be converted > to w > hat the function wants. > (gdb) This one's pretty simple once you figure it out. The error message is really bad; I'll hold on to this and try to improve it. Your program doesn't _use_ operator[]. So it doesn't get compiled into the program, and GDB can't call it to figure out what to do. What happens if you add a call to the operator? [I noticed some other quirks; for instance, if your program only uses the mutable version and GDB finds the const version first, it may get confused...] -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer