Michael~ Protobuf doesn't support dynamic unloading. Also, the next release will have a dependency on Abseil which also doesn't support dynamic unloading, so this is only going to become more pronounced.
Matt On Thu, Oct 27, 2022 at 8:03 PM Michael Ngarimu <[email protected]> wrote: > On Windows I use protobuf inside a DLL that is loaded/unloaded outside my > control. > > The Windows appverifier detects the following as a leaked heap allocation. > While I understand it may be the case that protobuf allocates > global/singleton instances on the heap to exist for the lifetime of the > program, the appverifier is run as part of the Windows HLK process and > certification fails due to detected heap allocation leaks. > > Am I just out of luck with using protobuf in applications that require > Windows certification or is there way to clean up these allocations? > > 00007ff9ba00460c ntdll!RtlDebugAllocateHeap+0x0000000000000048 > 00007ff9b9fbdc72 ntdll!RtlpAllocateHeap+0x0000000000092b12 > 00007ff9b9f2929c ntdll!RtlpAllocateHeapInternal+0x00000000000006ac > 00007ff981dac31c vrfcore!VfCoreRtlAllocateHeap+0x000000000000002c > 00007ff92cbf3555 vfbasics!AVrfpRtlAllocateHeap+0x0000000000000155 > 00007ff91a38d980 > MyLibraryDLL!heap_alloc_dbg_internal+0x0000000000000210 > 00007ff91a38d71d MyLibraryDLL!heap_alloc_dbg+0x000000000000004d > 00007ff91a39087f MyLibraryDLL!_malloc_dbg+0x000000000000002f > 00007ff91a3898ae MyLibraryDLL!malloc+0x000000000000001e > 00007ff91a328a73 MyLibraryDLL!operator new+0x0000000000000013 > 00007ff91a028eb4 > MyLibraryDLL!std::_Default_allocate_traits::_Allocate+0x0000000000000014 > 00007ff91a026936 > MyLibraryDLL!std::_Allocate<16,std::_Default_allocate_traits,0>+0x0000000000000036 > 00007ff91a029f51 > MyLibraryDLL!std::allocator<std::_Container_proxy>::allocate+0x0000000000000021 > 00007ff91a0268ae > MyLibraryDLL!std::_Container_base12::_Alloc_proxy<std::allocator<std::_Container_proxy> > >+0x000000000000001e > 00007ff91a061a51 > MyLibraryDLL!std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::basic_string<char,std::char_traits<char>,std::allocator<char> > >+0x0000000000000051 > 00007ff91a0cf19b > MyLibraryDLL!google::protobuf::internal::ExplicitlyConstructed<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::DefaultConstruct+0x000000000000002b > 00007ff91a0ca352 > MyLibraryDLL!google::protobuf::internal::InitProtobufDefaultsImpl+0x0000000000000012 > 00007ff91a0c75d5 > MyLibraryDLL!google::protobuf::internal::InitProtobufDefaultsSlow+0x0000000000000045 > 00007ff91a0230ab MyLibraryDLL!google::protobuf::internal::`dynamic > initializer for 'init_empty_string''+0x000000000000000b > 00007ff91a3c0923 MyLibraryDLL!_initterm+0x0000000000000063 > 00007ff91a328715 > MyLibraryDLL!dllmain_crt_process_attach+0x00000000000000a5 > > -- > 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/840f250e-4524-4841-9503-237d9f40fe18n%40googlegroups.com > <https://groups.google.com/d/msgid/protobuf/840f250e-4524-4841-9503-237d9f40fe18n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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/CAMiELU0GQ%3Dyx-9CeM0stu8jPtEDnE2mydUghhnru4862v1E%3D8g%40mail.gmail.com.
