From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21544 invoked by alias); 15 Dec 2002 03:49:58 -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 21537 invoked from network); 15 Dec 2002 03:49:57 -0000 Received: from unknown (HELO tomts14-srv.bellnexxia.net) (209.226.175.35) by sources.redhat.com with SMTP; 15 Dec 2002 03:49:57 -0000 Received: from ehville ([65.94.64.250]) by tomts14-srv.bellnexxia.net (InterMail vM.5.01.04.19 201-253-122-122-119-20020516) with SMTP id <20021215034956.MEMT14525.tomts14-srv.bellnexxia.net@ehville> for ; Sat, 14 Dec 2002 22:49:56 -0500 Message-ID: <002201c2a3ed$02a1f3e0$0100a8c0@ehville> From: "Jacques Le Normand" To: Subject: casting in gdb Date: Sat, 14 Dec 2002 19:49:00 -0000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-SW-Source: 2002-12/txt/msg00209.txt.bz2 That explains alot, thanks Would you know how to tell g++ to keep all the methods, even when they're not used? Say I have a map m, how would I get gdb to display m["foo"] ? It gives me the silly "function expects something else" error, which I can understand since gdb won't cast from char* to string. I'm guessing I need to define my own subroutines. --Jacques > ----- Original Message ----- > From: "Daniel Jacobowitz" > To: "Jacques Le Normand" > Cc: "Daniel Berlin" ; > Sent: Saturday, December 14, 2002 2:35 AM > Subject: Re: casting in gdb > > > > 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 > > >