From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6746 invoked by alias); 12 Aug 2008 15:25:15 -0000 Received: (qmail 6736 invoked by uid 22791); 12 Aug 2008 15:25:14 -0000 X-Spam-Check-By: sourceware.org Received: from hoat.troll.no (HELO hoat.troll.no) (62.70.27.150) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 12 Aug 2008 15:24:32 +0000 Received: from hoat.troll.no (tedur.troll.no [62.70.27.154]) by hoat.troll.no (Postfix) with SMTP id 2C56740031 for ; Tue, 12 Aug 2008 17:24:30 +0200 (CEST) Received: from gar.trolltech.de (gar.trolltech.de [10.4.0.24]) by hoat.troll.no (Postfix) with ESMTP id 102DE40030 for ; Tue, 12 Aug 2008 17:24:30 +0200 (CEST) From: =?iso-8859-1?q?Andr=E9_P=F6nitz?= To: gdb@sourceware.org Subject: Re: problem with gdb's 'call' Date: Tue, 12 Aug 2008 21:10:00 -0000 User-Agent: KMail/1.9.9 References: <200808121636.43694.apoenitz@trolltech.com> <20080812143945.GA5050@caradoc.them.org> In-Reply-To: <20080812143945.GA5050@caradoc.them.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200808121727.40394.apoenitz@trolltech.com> X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2008-08/txt/msg00165.txt.bz2 On Tuesday 12 August 2008 16:39:45 Daniel Jacobowitz wrote: > On Tue, Aug 12, 2008 at 04:36:40PM +0200, Andr=E9 P=F6nitz wrote: > > (gdb) p _Z3fooIiET_v > > $1 =3D {int (void)} 0x400544 ()> > >=20 > > (gdb) call _Z3fooIiET_v() > > /build/buildd/gdb-6.8/gdb/valops.c:2069: internal-error: find_oload_= champ_namespace_loop: > > Assertion `new_oload_champ !=3D -1' failed. > > A problem internal to GDB has been detected, >=20 > I've seen this error recently, with pointers to members. I don't > think my patches will fix this particular case (the OP_VAR_VALUE > rather than STRUCTOP_MPTR case). >=20 > > I already use the mangled name of the symbol as I did not find a way to > > quote 'call foo()' in a way that looks acceptable to gdb. >=20 > It's because of the templated return type. The quoting that works > today is (gross, I know): >=20 > p 'int foo'() >=20 > But it doesn't help, there's the same error. I noticed in the mean time that set demangle-style none=20 helps to prevent the crash. Together with your hint this might already be 'some kind of "solution"' ;-) > > Is there a way to make the gdb core accept the mangled name without > > attempting to demangling it (to avoid the crash)? >=20 > The crash has nothing to do with demangling, but you can disable > overload resolution and that should help. "set overload-resolution > off". Is there somewhere a description in what code paths setting variables like overload-resolution or demangle-style has an effect? > Or just fix the bug :-) ;-} That's certainly the best solution for the long run. In the short term I have to live with debuggers that are already released.... Andr=E9