From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15392 invoked by alias); 31 Aug 2006 19:52:52 -0000 Received: (qmail 15384 invoked by uid 22791); 31 Aug 2006 19:52:52 -0000 X-Spam-Check-By: sourceware.org Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17) by sourceware.org (qpsmtpd/0.31.1) with ESMTP; Thu, 31 Aug 2006 19:52:48 +0000 Received: from drow by nevyn.them.org with local (Exim 4.54) id 1GIsaj-0003G7-4A; Thu, 31 Aug 2006 15:52:45 -0400 Date: Thu, 31 Aug 2006 19:52:00 -0000 From: Daniel Jacobowitz To: Michael Veksler Cc: Frederic RISS , gdb@sourceware.org Subject: Re: Get versioned minsyms from dynamic symtab (Was: Re: How to call operator<< functions?) Message-ID: <20060831195245.GA12447@nevyn.them.org> Mail-Followup-To: Michael Veksler , Frederic RISS , gdb@sourceware.org References: <1156936373.3429.250.camel@crx549.cro.st.com> <1156944608.3429.275.camel@crx549.cro.st.com> <1157024034.3429.303.camel@crx549.cro.st.com> <44F6D16B.7090001@tx.technion.ac.il> <1157027172.3429.309.camel@crx549.cro.st.com> <44F6DDF8.9000703@tx.technion.ac.il> <1157030582.3429.316.camel@crx549.cro.st.com> <1157042884.3429.344.camel@crx549.cro.st.com> <20060831165738.GA6529@nevyn.them.org> <44F73D1B.6010507@tx.technion.ac.il> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <44F73D1B.6010507@tx.technion.ac.il> User-Agent: Mutt/1.5.11+cvs20060403 X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2006-08/txt/msg00286.txt.bz2 On Thu, Aug 31, 2006 at 10:48:43PM +0300, Michael Veksler wrote: > >This is a deliberate choice on GCC's part, to reduce overly excessive > >debug information. There've been arguments about it in the past. My > > > From bits/ostream.tcc header file: > // Inhibit implicit instantiations for required instantiations, > // which are defined via explicit instantiations elsewhere. > // NB: This syntax is a GNU extension. > #if _GLIBCXX_EXTERN_TEMPLATE > extern template class basic_ostream; No, that's irrelevant to what I was talking about; some parts of the debug info are done only with the class's key method. But... > >feeling is that we will end up with something like a -gfull argument > >to force the extra information to be emitted. GDB needs to work as > >well as possible anyway. > > > > > Reading it more, one can force full instantiation of ostream: > g++ -g -D_GLIBCXX_EXTERN_TEMPLATE=0 myCout.cpp cout-gdb.cpp > Now everything works, and it is not that much bigger. ...this causes the key method to be in the header for every compilation unit, IIUC. -- Daniel Jacobowitz CodeSourcery