Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing system suppressions in 10.15.3 #15

Open
Anxdada opened this issue Aug 7, 2020 · 2 comments
Open

Missing system suppressions in 10.15.3 #15

Anxdada opened this issue Aug 7, 2020 · 2 comments
Labels
10.15 enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed

Comments

@Anxdada
Copy link

Anxdada commented Aug 7, 2020

source code:

#include <stdio.h>

int main(void) {
    return 0;
}

execute the following commands in order:

clang -Wall 1.c -g -o out
valgrind --tool=memcheck --leak-check=full ./out

here is output after executing above command:

=31708== Memcheck, a memory error detector
==31708== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==31708== Using Valgrind-3.17.0.GIT and LibVEX; rerun with -h for copyright info
==31708== Command: ./out
==31708==
==31708==
==31708== HEAP SUMMARY:
==31708==     in use at exit: 13,810 bytes in 161 blocks
==31708==   total heap usage: 175 allocs, 14 frees, 18,554 bytes allocated
==31708==
==31708== 32 bytes in 1 blocks are definitely lost in loss record 5 of 36
==31708==    at 0x10010DC90: calloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006D6F21: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FCB: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FCB: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C39AE: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D3512: class_addIvar (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1000076B6: dyld::notifyBatchPartial(dyld_image_states, bool, char const* (*)(dyld_image_states, unsigned int, dyld_image_info const*), bool, bool) (in /usr/lib/dyld)
==31708==    by 0x100007892: dyld::registerObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*)) (in /usr/lib/dyld)
==31708==    by 0x1002A9801: _dyld_objc_notify_register (in /usr/lib/system/libdyld.dylib)
==31708==    by 0x1006C22B0: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EDF1: _os_object_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x10023AF65: libdispatch_init (in /usr/lib/system/libdispatch.dylib)
==31708==
==31708== 32 bytes in 1 blocks are definitely lost in loss record 6 of 36
==31708==    at 0x10010DC90: calloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006D6F21: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FCB: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FCB: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FCB: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C39AE: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D3512: class_addIvar (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1000076B6: dyld::notifyBatchPartial(dyld_image_states, bool, char const* (*)(dyld_image_states, unsigned int, dyld_image_info const*), bool, bool) (in /usr/lib/dyld)
==31708==    by 0x100007892: dyld::registerObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*)) (in /usr/lib/dyld)
==31708==    by 0x1002A9801: _dyld_objc_notify_register (in /usr/lib/system/libdyld.dylib)
==31708==    by 0x1006C22B0: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EDF1: _os_object_init (in /usr/lib/system/libdispatch.dylib)
==31708==
==31708== 32 bytes in 1 blocks are definitely lost in loss record 7 of 36
==31708==    at 0x10010DC90: calloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006D6F21: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FF2: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FCB: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FCB: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FCB: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C39AE: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D3512: class_addIvar (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1000076B6: dyld::notifyBatchPartial(dyld_image_states, bool, char const* (*)(dyld_image_states, unsigned int, dyld_image_info const*), bool, bool) (in /usr/lib/dyld)
==31708==    by 0x100007892: dyld::registerObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*)) (in /usr/lib/dyld)
==31708==    by 0x1002A9801: _dyld_objc_notify_register (in /usr/lib/system/libdyld.dylib)
==31708==    by 0x1006C22B0: ??? (in /usr/lib/libobjc.A.dylib)
==31708==
==31708== 32 bytes in 1 blocks are definitely lost in loss record 8 of 36
==31708==    at 0x10010DC90: calloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006D6F21: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FF2: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FCB: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FCB: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C39AE: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D3512: class_addIvar (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1000076B6: dyld::notifyBatchPartial(dyld_image_states, bool, char const* (*)(dyld_image_states, unsigned int, dyld_image_info const*), bool, bool) (in /usr/lib/dyld)
==31708==    by 0x100007892: dyld::registerObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*)) (in /usr/lib/dyld)
==31708==    by 0x1002A9801: _dyld_objc_notify_register (in /usr/lib/system/libdyld.dylib)
==31708==    by 0x1006C22B0: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EDF1: _os_object_init (in /usr/lib/system/libdispatch.dylib)
==31708==
==31708== 80 (32 direct, 48 indirect) bytes in 1 blocks are definitely lost in loss record 14 of 36
==31708==    at 0x10010D8AA: malloc_zone_malloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006C4792: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C4640: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C2EBD: _objc_init (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D3512: class_addIvar (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1000076B6: dyld::notifyBatchPartial(dyld_image_states, bool, char const* (*)(dyld_image_states, unsigned int, dyld_image_info const*), bool, bool) (in /usr/lib/dyld)
==31708==    by 0x100007892: dyld::registerObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*)) (in /usr/lib/dyld)
==31708==    by 0x1002A9801: _dyld_objc_notify_register (in /usr/lib/system/libdyld.dylib)
==31708==    by 0x1006C22B0: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EDF1: _os_object_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x10023AF65: libdispatch_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x100119790: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==31708==
==31708== 80 (32 direct, 48 indirect) bytes in 1 blocks are definitely lost in loss record 15 of 36
==31708==    at 0x10010D8AA: malloc_zone_malloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006C47B3: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C4640: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C2EBD: _objc_init (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D3512: class_addIvar (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1000076B6: dyld::notifyBatchPartial(dyld_image_states, bool, char const* (*)(dyld_image_states, unsigned int, dyld_image_info const*), bool, bool) (in /usr/lib/dyld)
==31708==    by 0x100007892: dyld::registerObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*)) (in /usr/lib/dyld)
==31708==    by 0x1002A9801: _dyld_objc_notify_register (in /usr/lib/system/libdyld.dylib)
==31708==    by 0x1006C22B0: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EDF1: _os_object_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x10023AF65: libdispatch_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x100119790: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==31708==
==31708== 80 (16 direct, 64 indirect) bytes in 1 blocks are definitely lost in loss record 16 of 36
==31708==    at 0x10010D635: malloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1003C72D2: _owned_ptr_alloc (in /usr/lib/system/libsystem_c.dylib)
==31708==    by 0x1003C79AD: setenv (in /usr/lib/system/libsystem_c.dylib)
==31708==    by 0x1006623D6: _libxpc_initializer (in /usr/lib/system/libxpc.dylib)
==31708==    by 0x1001197A0: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==31708==    by 0x10001D15C: ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==31708==    by 0x10001D581: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==31708==    by 0x100017DC6: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==31708==    by 0x100017D31: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==31708==    by 0x100015E57: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==31708==    by 0x100015EF7: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==31708==    by 0x10000466A: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==31708==
==31708== 120 (24 direct, 96 indirect) bytes in 1 blocks are definitely lost in loss record 18 of 36
==31708==    at 0x10010DC90: calloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006C25E3: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D3512: class_addIvar (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1000076B6: dyld::notifyBatchPartial(dyld_image_states, bool, char const* (*)(dyld_image_states, unsigned int, dyld_image_info const*), bool, bool) (in /usr/lib/dyld)
==31708==    by 0x100007892: dyld::registerObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*)) (in /usr/lib/dyld)
==31708==    by 0x1002A9801: _dyld_objc_notify_register (in /usr/lib/system/libdyld.dylib)
==31708==    by 0x1006C22B0: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EDF1: _os_object_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x10023AF65: libdispatch_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x100119790: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==31708==    by 0x10001D15C: ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==31708==    by 0x10001D581: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==31708==
==31708== 128 bytes in 1 blocks are definitely lost in loss record 19 of 36
==31708==    at 0x10010DFD6: realloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006DFB8E: objc_duplicateClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C282D: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D3512: class_addIvar (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1000076B6: dyld::notifyBatchPartial(dyld_image_states, bool, char const* (*)(dyld_image_states, unsigned int, dyld_image_info const*), bool, bool) (in /usr/lib/dyld)
==31708==    by 0x100007892: dyld::registerObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*)) (in /usr/lib/dyld)
==31708==    by 0x1002A9801: _dyld_objc_notify_register (in /usr/lib/system/libdyld.dylib)
==31708==    by 0x1006C22B0: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EDF1: _os_object_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x10023AF65: libdispatch_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x100119790: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==31708==    by 0x10001D15C: ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==31708==
==31708== 128 bytes in 1 blocks are definitely lost in loss record 20 of 36
==31708==    at 0x10010DC90: calloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006C6E5E: NXMapRemove (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EEAF: _os_object_alloc_realized (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x100233A78: _dispatch_lane_create_with_target (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x1006295E1: _libtrace_init (in /usr/lib/system/libsystem_trace.dylib)
==31708==    by 0x1001197B0: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==31708==    by 0x10001D15C: ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==31708==    by 0x10001D581: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==31708==    by 0x100017DC6: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==31708==    by 0x100017D31: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==31708==    by 0x100015E57: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==31708==    by 0x100015EF7: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==31708==
==31708== 128 bytes in 4 blocks are definitely lost in loss record 21 of 36
==31708==    at 0x10010DC90: calloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006D6F21: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FCB: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C39AE: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D3512: class_addIvar (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1000076B6: dyld::notifyBatchPartial(dyld_image_states, bool, char const* (*)(dyld_image_states, unsigned int, dyld_image_info const*), bool, bool) (in /usr/lib/dyld)
==31708==    by 0x100007892: dyld::registerObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*)) (in /usr/lib/dyld)
==31708==    by 0x1002A9801: _dyld_objc_notify_register (in /usr/lib/system/libdyld.dylib)
==31708==    by 0x1006C22B0: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EDF1: _os_object_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x10023AF65: libdispatch_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x100119790: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==31708==
==31708== 128 bytes in 4 blocks are definitely lost in loss record 22 of 36
==31708==    at 0x10010DC90: calloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006D6F21: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FF2: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FCB: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C39AE: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D3512: class_addIvar (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1000076B6: dyld::notifyBatchPartial(dyld_image_states, bool, char const* (*)(dyld_image_states, unsigned int, dyld_image_info const*), bool, bool) (in /usr/lib/dyld)
==31708==    by 0x100007892: dyld::registerObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*)) (in /usr/lib/dyld)
==31708==    by 0x1002A9801: _dyld_objc_notify_register (in /usr/lib/system/libdyld.dylib)
==31708==    by 0x1006C22B0: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EDF1: _os_object_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x10023AF65: libdispatch_init (in /usr/lib/system/libdispatch.dylib)
==31708==
==31708== 348 (96 direct, 252 indirect) bytes in 1 blocks are definitely lost in loss record 26 of 36
==31708==    at 0x10010DC90: calloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006C6E5E: NXMapRemove (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EEAF: _os_object_alloc_realized (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x100662866: xpc_dictionary_create (in /usr/lib/system/libxpc.dylib)
==31708==    by 0x100662E8C: _xpc_dyld_image_callback (in /usr/lib/system/libxpc.dylib)
==31708==    by 0x1000069D4: dyld::registerBulkLoadCallback(void (*)(unsigned int, mach_header const**, char const**)) (in /usr/lib/dyld)
==31708==    by 0x100662DA5: _xpc_collect_images (in /usr/lib/system/libxpc.dylib)
==31708==    by 0x100662327: _libxpc_initializer (in /usr/lib/system/libxpc.dylib)
==31708==    by 0x1001197A0: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==31708==    by 0x10001D15C: ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==31708==    by 0x10001D581: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==31708==    by 0x100017DC6: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==31708==
==31708== 1,216 (96 direct, 1,120 indirect) bytes in 1 blocks are definitely lost in loss record 28 of 36
==31708==    at 0x10010DC90: calloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006C6E5E: NXMapRemove (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EEAF: _os_object_alloc_realized (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x100662866: xpc_dictionary_create (in /usr/lib/system/libxpc.dylib)
==31708==    by 0x1006626E9: _xpc_collect_environment (in /usr/lib/system/libxpc.dylib)
==31708==    by 0x100662322: _libxpc_initializer (in /usr/lib/system/libxpc.dylib)
==31708==    by 0x1001197A0: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==31708==    by 0x10001D15C: ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==31708==    by 0x10001D581: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==31708==    by 0x100017DC6: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==31708==    by 0x100017D31: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==31708==    by 0x100015E57: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==31708==
==31708== 1,536 bytes in 1 blocks are definitely lost in loss record 29 of 36
==31708==    at 0x10010D635: malloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006C21BB: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EDF1: _os_object_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x10023AF65: libdispatch_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x100119790: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==31708==    by 0x10001D15C: ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==31708==    by 0x10001D581: ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==31708==    by 0x100017DC6: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==31708==    by 0x100017D31: ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==31708==    by 0x100015E57: ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) (in /usr/lib/dyld)
==31708==    by 0x100015EF7: ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==31708==    by 0x10000466A: dyld::initializeMainExecutable() (in /usr/lib/dyld)
==31708==
==31708== 1,632 bytes in 51 blocks are definitely lost in loss record 30 of 36
==31708==    at 0x10010DC90: calloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006D6F21: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C39AE: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D3512: class_addIvar (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1000076B6: dyld::notifyBatchPartial(dyld_image_states, bool, char const* (*)(dyld_image_states, unsigned int, dyld_image_info const*), bool, bool) (in /usr/lib/dyld)
==31708==    by 0x100007892: dyld::registerObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*)) (in /usr/lib/dyld)
==31708==    by 0x1002A9801: _dyld_objc_notify_register (in /usr/lib/system/libdyld.dylib)
==31708==    by 0x1006C22B0: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EDF1: _os_object_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x10023AF65: libdispatch_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x100119790: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==31708==    by 0x10001D15C: ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==31708==
==31708== 1,632 bytes in 51 blocks are definitely lost in loss record 31 of 36
==31708==    at 0x10010DC90: calloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006D6F21: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FF2: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C39AE: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D3512: class_addIvar (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1000076B6: dyld::notifyBatchPartial(dyld_image_states, bool, char const* (*)(dyld_image_states, unsigned int, dyld_image_info const*), bool, bool) (in /usr/lib/dyld)
==31708==    by 0x100007892: dyld::registerObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*)) (in /usr/lib/dyld)
==31708==    by 0x1002A9801: _dyld_objc_notify_register (in /usr/lib/system/libdyld.dylib)
==31708==    by 0x1006C22B0: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EDF1: _os_object_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x10023AF65: libdispatch_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x100119790: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==31708==
==31708== 2,048 bytes in 1 blocks are definitely lost in loss record 32 of 36
==31708==    at 0x10010D635: malloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006DD5C6: foreach_realized_class(bool ( block_pointer)(objc_class*)) (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006DD557: protocol_addProperty_nolock(property_list_t*&, char const*, objc_property_attribute_t const*, unsigned int) (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006E0FA5: _base_objc_setAssociatedObject(objc_object*, void const*, objc_object*, objc_AssociationPolicy) (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006CFB3E: class_getInstanceMethod (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C5875: NXHashInsert (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D74A3: class_rw_t::extAlloc(class_ro_t const*, bool) (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FF2: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FCB: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FCB: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D6FCB: initializeNonMetaClass (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C39AE: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==
==31708== 2,088 (24 direct, 2,064 indirect) bytes in 1 blocks are definitely lost in loss record 35 of 36
==31708==    at 0x10010D8AA: malloc_zone_malloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006C4610: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C4FAA: objc_opt::objc_stringhash_t::hash(char const*, unsigned long) const (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C347F: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D3512: class_addIvar (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1000076B6: dyld::notifyBatchPartial(dyld_image_states, bool, char const* (*)(dyld_image_states, unsigned int, dyld_image_info const*), bool, bool) (in /usr/lib/dyld)
==31708==    by 0x100007892: dyld::registerObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*)) (in /usr/lib/dyld)
==31708==    by 0x1002A9801: _dyld_objc_notify_register (in /usr/lib/system/libdyld.dylib)
==31708==    by 0x1006C22B0: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EDF1: _os_object_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x10023AF65: libdispatch_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x100119790: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==31708==
==31708== 2,120 (24 direct, 2,096 indirect) bytes in 1 blocks are definitely lost in loss record 36 of 36
==31708==    at 0x10010D8AA: malloc_zone_malloc (in /usr/local/Cellar/valgrind/HEAD-e0af3eb/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==31708==    by 0x1006C4610: map_images_nolock (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006C2EBD: _objc_init (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1006D3512: class_addIvar (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x1000076B6: dyld::notifyBatchPartial(dyld_image_states, bool, char const* (*)(dyld_image_states, unsigned int, dyld_image_info const*), bool, bool) (in /usr/lib/dyld)
==31708==    by 0x100007892: dyld::registerObjCNotifiers(void (*)(unsigned int, char const* const*, mach_header const* const*), void (*)(char const*, mach_header const*), void (*)(char const*, mach_header const*)) (in /usr/lib/dyld)
==31708==    by 0x1002A9801: _dyld_objc_notify_register (in /usr/lib/system/libdyld.dylib)
==31708==    by 0x1006C22B0: ??? (in /usr/lib/libobjc.A.dylib)
==31708==    by 0x10022EDF1: _os_object_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x10023AF65: libdispatch_init (in /usr/lib/system/libdispatch.dylib)
==31708==    by 0x100119790: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==31708==    by 0x10001D15C: ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in /usr/lib/dyld)
==31708==
==31708== LEAK SUMMARY:
==31708==    definitely lost: 7,832 bytes in 126 blocks
==31708==    indirectly lost: 5,788 bytes in 31 blocks
==31708==      possibly lost: 0 bytes in 0 blocks
==31708==    still reachable: 0 bytes in 0 blocks
==31708==         suppressed: 190 bytes in 4 blocks
==31708==
==31708== For lists of detected and suppressed errors, rerun with: -s
==31708== ERROR SUMMARY: 20 errors from 20 contexts (suppressed: 4 from 4)

macOS version:

macOS Catalina 
Version 10.15.3(19D76)

valgrind version:

valgrind-3.17.0.GIT
@NicMcPhee
Copy link

I'm guessing this is related to (or the same as) #10?

@LouisBrunner LouisBrunner added enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed labels Sep 11, 2020
@LouisBrunner LouisBrunner changed the title Why are there many memory leaks reported in its own so library Missing system suppressions in 10.15.3 Sep 11, 2020
@LouisBrunner
Copy link
Owner

Hi @Anxdada,

As you can see in the stacktraces, these warnings come from the macOS system libraries themselves, which can originate because of false positives or potential bugs.

Valgrind solves this issue using suppressions. For each platform/version, it includes a list of such warnings to ignore as we cannot fix them. If you run Valgrind using valgrind --gen-suppressions=all ./out, it will generate snippets that you can add to your own suppressions file (providable using --suppressions=filename) or the 10.15.x suppressions file darwin19.supp.

As I do not see these warnings myself, it would be great if you could amend darwin19.supp with extra suppressions (see #17 for an example, which might also fix some of these warnings already) and create a pull request, it would ensure this gets fixed, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
10.15 enhancement New feature or request good first issue Good for newcomers help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants