[dune-pdelab] Huge size of debug sysbols.

Jö Fahlke jorrit at jorrit.de
Wed Jun 6 13:46:54 CEST 2012


Am Wed,  6. Jun 2012, 13:22:04 +0200 schrieb Steffen Müthing:
> > As pdelabb is making heavy use of templates and nested tempaltes, the
> > size of our debug symbols "explodes". I was looking for ways to reduce
> > the size of the symbols. Does anyone have experience with "type
> > hiding"? (See e.g. http://www.boost.org/doc/libs/1_35_0/libs/multi_index/doc/compiler_specifics.html#type_hiding)
> 
> yes, that's a nice trick - PDELab uses it for example with the type of the LocalFunctionSpace
> (the LFS inherits from the much more complicated type derived using a TypeTree transformation).
> Unfortunately, AFAIK the trick does not help us as much with the debug symbols, as the DWARF debug format
> requires the *demangled* names of all reachable types to be dumped as debug info. That is required
> to be able to display the names of base classes in the debugger. I have been scratching my head
> about this as well, especially why the format stores demangled names, which can be up to a factor
> of 100 larger than the mangled names in PDELab.
> 
> That said, hiding the long and complicated type names in base classes would still have the benefit of reducing
> the length of individual type names, which should improve the readability of compiler messages quite a bit... ;-)
> I havent looked at it in detail, but one first possibility might e.g. be to derive all those traits classes instead of
> typedef'ing them.

This should work well for traits classes and the like -- they don't have
constructors which you'd need to replicate in the derived class.

One potential pitfall to keep in mind is that specializing on the hidden class
will no longer work directly -- you really need stuff like

  typedef PowerGridFunctionSpaceTag ImplementationTag;

in every class you might want to specialize on, and then use enable_if etc.

Regards,
Jö.

-- 
Jorrit (Jö) Fahlke, Interdisciplinary Center for Scientific Computing,
Heidelberg University, Im Neuenheimer Feld 368, D-69120 Heidelberg
Tel: +49 6221 54 8890 Fax: +49 6221 54 8884

Das Erststudium soll bis zum berufsqualifizierenden Abschluss
gebührenfrei bleiben, also bis zur Erlangung der Taxi-Lizenz.
-- Akrützel, Ausgabe vom 16.5.2002 (www.akruetzel.de)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 828 bytes
Desc: Digital signature
URL: <https://lists.dune-project.org/pipermail/dune-pdelab/attachments/20120606/da4cef51/attachment.sig>


More information about the dune-pdelab mailing list