From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5507 invoked by alias); 24 Nov 2006 21:11:10 -0000 Received: (qmail 5486 invoked by uid 22791); 24 Nov 2006 21:11:09 -0000 X-Spam-Check-By: sourceware.org Received: from cmhnat160.quovadx.com (HELO moroha.quovadx.com) (208.30.140.160) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 24 Nov 2006 21:11:00 +0000 Received: from qxvcexch01.ad.quovadx.com (qxvcexch01.ad.quovadx.com [192.168.170.59]) by moroha.quovadx.com (8.13.6/8.13.6) with ESMTP id kAOLAS7U010657; Fri, 24 Nov 2006 21:10:29 GMT Received: from [10.70.3.113] ([10.70.3.113]) by qxvcexch01.ad.quovadx.com with Microsoft SMTPSVC(6.0.3790.1830); Fri, 24 Nov 2006 14:10:48 -0700 Message-ID: <456762E8.2050703@roguewave.com> Date: Fri, 24 Nov 2006 21:11:00 -0000 From: Martin Sebor User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.13) Gecko/20060417 MIME-Version: 1.0 To: Benjamin Kosnik CC: Paul Pogonyshev , libstdc++@gcc.gnu.org, gdb@sourceware.org Subject: Re: setting breakpoints with C++ typedef names [was: Re: debug information] References: <200611191342.48724.pogonyshev@gmx.net> <20061121100701.6b980f48.bkoz@redhat.com> <200611212225.28377.pogonyshev@gmx.net> <20061122130341.a4436ce2.bkoz@redhat.com> In-Reply-To: <20061122130341.a4436ce2.bkoz@redhat.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit 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: 2006-11/txt/msg00169.txt.bz2 Benjamin Kosnik wrote: >>But still function names include full type name: `b 'bar(basic_pod)''. >>Not much of a problem in this case, but sometimes the full name is very >>long... > > > Oh. I finally understand you. Yes, this is a drag. > > You want to be able to do: > > (gdb) b bar(ipod) > > instead of > > (gdb) b bar(basic_pod) This is especially troublesome when the real type is private to the implementation, as in, for example, void foo (std::map::iterator); In order for a user to set a breakpoint on foo they need to know that the type of libstdc++'s map::iterator is really called std::_Rb_tree_iterator > (and something completely different when using a different implementation of the library). I expect this use of private names to become even more pervasive when (and if) typedef templates are implemented. Martin