|
From: Ivo R. <iv...@iv...> - 2016-04-16 04:29:36
|
> > > +99.95% (84,704B) (heap allocation functions) malloc/new/new[],
> > > --alloc-fns, etc.
> > > +->85.79% (72,704B) 0x........: ??? (in /usr/lib64/libstdc++.so.6.0.21)
> > > +| ->85.79% (72,704B) 0x........: call_init.part.0 (dl-init.c:72)
> > > +| ->85.79% (72,704B) 0x........: _dl_init (dl-init.c:30)
> > > +| ->85.79% (72,704B) 0x........: ??? (in /usr/lib64/ld-2.21.so)
> > > +|
> > > +->04.72% (4,000B) 0x........: main (new-cpp.cpp:19)
> > >
> > > I believe that this change in output from massif has the same
> underlying
> > > cause
> > > as the change above in the output from memcheck.
> > >
> >
> > Agreed. I tried to fix this in bug 345307 ignoring allocations
> > done by _GLOBAL__sub_I_eh_alloc.cc. This worked for Linux/Ubuntu 15.10
> > and Solaris 12. Apparently on this distribution, things are a bit
> different
> > so another
> > function needs to be ignored. A little investigation should show what
> needs
> > to be done here.
>
> The issue I believe is that unless we have the full symtab (from the
> separate libstdc++-debuginfo package) we don't know the name of the
> function. For memcheck the following suppression seems to work, with
> a variant that is stripped and one with full symtab debug symbols:
>
> {
> malloc-leaks-cxx-stl-string-classes
> Memcheck:Leak
> match-leak-kinds: reachable
> fun:malloc
> obj:*/*lib*/libstdc++.so*
> fun:call_init.part.0
> fun:call_init
> fun:_dl_init
> obj:/usr/*lib*/ld-2.*.so
> }
>
> {
> malloc-leaks-cxx-stl-string-classes-debug
> Memcheck:Leak
> match-leak-kinds: reachable
> fun:malloc
> fun:pool
> fun:__static_initialization_and_destruction_0
> fun:_GLOBAL__sub_I_eh_alloc.cc
> fun:call_init.part.0
> fun:call_init
> fun:_dl_init
> obj:/usr/*lib*/ld-2.*.so
> }
>
> I don't know how to do a similar dual suppression using the massif
> --ignore-fn option.
>
Could you try: --ignore-fn=call_init.part.0
Cheers,
I.
|