Re: Get versioned minsyms from dynamic symtab (Was: Re: How to call operator<< functions?)

Daniel Jacobowitz
2006-08-31T19:52:52Z

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<char>;

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