Hi fellows,

I am running an application on Redhat which is linked with protobuf 
generated code. But this particular app doesn't use protobuf at all - it is 
just linked with library which in its turn linked with protobuf files.

When I run my app under valgrind it shows many many small leaks. Most of 
them originate to call to GoogleOnceInit.
Is it normal ? Can I do something to get rid of this "leaks"? Or at least 
may be somebody can suggest how I can suppress this messages so valgrind 
report would not look so confusing :)
Here is the one of the stack traces of the leak reported by valgrind. I 
have many of similar blocks.


>>  978 ==60781== 56 bytes in 1 blocks are still reachable in loss record 48 
>> of 87
>
>     979 ==60781==    at 0x4C2A483: operator new(unsigned long) 
>> (vg_replace_malloc.c:344)
>
>     980 ==60781==    by 0x835430B: allocate (new_allocator.h:104)
>
>     981 ==60781==    by 0x835430B: _M_get_node (stl_tree.h:370)
>
>     982 ==60781==    by 0x835430B: _M_create_node<std::pair<const 
>> std::basic_string<char, std::char_traits<char>, std::allocator<char> >, 
>> std::pair<void cons        t*, int> > > (stl_tree.h:403)
>
>     983 ==60781==    by 0x835430B: 
>> std::_Rb_tree_iterator<std::pair<std::string const, std::pair<void const*, 
>> int> > > std::_Rb_tree<std::string, std::pair<s        td::string const, 
>> std::pair<void const*, int> >, std::_Select1st<std::pair<std::string const, 
>> std::pair<void const*, int> > >, std::less<std::string>        , 
>> std::allocator<std::pair<std::string const, std::pair<void const*, int> > > 
>> >::_M_insert_<std::pair<std::string const, std::pair<void const*, int>      
>>    > >(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, 
>> std::pair<std::string const, std::pair<void const*, int> >&&) 
>> (stl_tree.h:1023)
>
>     984 ==60781==    by 0x83548BC: _M_insert_unique_<std::pair<const 
>> std::basic_string<char>, std::pair<void const*, int> > > (stl_tree.h:1482)
>
>     985 ==60781==    by 0x83548BC: insert<std::pair<const 
>> std::basic_string<char>, std::pair<void const*, int> >, void> 
>> (stl_map.h:657)
>
>     986 ==60781==    by 0x83548BC: 
>> google::protobuf::SimpleDescriptorDatabase::DescriptorIndex<std::pair<void 
>> const*, int> >::AddSymbol(std::string const&, s        td::pair<void 
>> const*, int>) (descriptor_database.cc:133)
>
>     987 ==60781==    by 0x8356209: 
>> google::protobuf::SimpleDescriptorDatabase::DescriptorIndex<std::pair<void 
>> const*, int> >::AddFile(google::protobuf::FileD        escriptorProto 
>> const&, std::pair<void const*, int>) (descriptor_database.cc:69)
>
>     988 ==60781==    by 0x835292A: 
>> google::protobuf::EncodedDescriptorDatabase::Add(void const*, int) 
>> (descriptor_database.cc:316)
>
>     989 ==60781==    by 0x8322FD9: 
>> google::protobuf::DescriptorPool::InternalAddGeneratedFile(void const*, 
>> int) (descriptor.cc:1394)
>
>     990 ==60781==    by 0x837BAD9: 
>> protobuf_google_2fprotobuf_2fduration_2eproto::AddDescriptorsImpl() 
>> (duration.pb.cc:102)
>
>     991 ==60781==    by 0x82F7C6F: 
>> google::protobuf::internal::FunctionClosure0::Run() (callback.h:129)
>
>     992 ==60781==    by 0x82F8F90: 
>> google::protobuf::GoogleOnceInitImpl(long*, google::protobuf::Closure*) 
>> (once.cc:83)
>
>     993 ==60781==    by 0x837BBF4: GoogleOnceInit (once.h:128)
>
>     994 ==60781==    by 0x837BBF4: 
>> protobuf_google_2fprotobuf_2fduration_2eproto::AddDescriptors() 
>> (duration.pb.cc:109)
>
>     995 ==60781==    by 0x400F992: _dl_init (in /usr/lib64/ld-2.17.so)
>
>     996 ==60781==    by 0x4001179: ??? (in /usr/lib64/ld-2.17.so)
>
>
>>
 Here is the valgrind summary:

>  LEAK SUMMARY:
>
>    1812 ==60781==    definitely lost: 0 bytes in 0 blocks
>
>    1813 ==60781==    indirectly lost: 0 bytes in 0 blocks
>
>    1814 ==60781==      possibly lost: 0 bytes in 0 blocks
>
>    1815 ==60781==    still reachable: 10,402 bytes in 167 blocks
>
>    1816 ==60781==                       of which reachable via heuristic:
>
>    1817 ==60781==                         stdstring          : 3,938 bytes 
>> in 67 blocks
>
>    1818 ==60781==         suppressed: 0 bytes in 0 blocks
>
>
 

> So i hope somebody will be able to help me :)
>
>
-Boris 

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/protobuf/ad412f84-e37f-487c-bee3-5306ebdd0c8f%40googlegroups.com.

Reply via email to