Hi!

I just compiled a 64bit Valgrind 3.7 on OS X 10.7 hoping to use it for
a new project.
Wanting to try it out, I ran it on a project I just started that just
allocated and de-allocated a matrix (correctly) and it said that there
are weird leaks somewhere in the ImageLoader namespace/class belonging
do /usr/bin/dyld.

I've attached the leaky program and Valgrind's output below. To me it
seems that either OS X's dynamic linker leaks (which I find kind of
unlikely) or there is a bug in Valgrind.

Thanks,
Dan
#include <stdio.h>

int main()
{
        printf("Hello World!\n");
        return 0;
}

---------------------------------

[23:58:22] dan @ ~/proj/3/apd/tema1 
-> valgrind --show-reachable=yes --leak-check=full ./test
==29077== Memcheck, a memory error detector
==29077== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==29077== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==29077== Command: ./test
==29077== 
Hello World!
==29077== 
==29077== HEAP SUMMARY:
==29077==     in use at exit: 6,104 bytes in 29 blocks
==29077==   total heap usage: 29 allocs, 0 frees, 6,104 bytes allocated
==29077== 
==29077== 8 bytes in 1 blocks are still reachable in loss record 1 of 9
==29077==    at 0xB823: malloc (vg_replace_malloc.c:266)
==29077==    by 0x7FFF5FC11B9E: malloc (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC19BB2: operator new(unsigned long) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC080F2: std::vector<char const* (*)(dyld_image_states, 
unsigned int, dyld_image_info const*), std::allocator<char const* 
(*)(dyld_image_states, unsigned int, dyld_image_info const*)> 
>::_M_insert_aux(__gnu_cxx::__normal_iterator<char const* 
(**)(dyld_image_states, unsigned int, dyld_image_info const*), std::vector<char 
const* (*)(dyld_image_states, unsigned int, dyld_image_info const*), 
std::allocator<char const* (*)(dyld_image_states, unsigned int, dyld_image_info 
const*)> > >, char const* (* const&)(dyld_image_states, unsigned int, 
dyld_image_info const*)) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC081D4: std::vector<char const* (*)(dyld_image_states, 
unsigned int, dyld_image_info const*), std::allocator<char const* 
(*)(dyld_image_states, unsigned int, dyld_image_info const*)> 
>::insert(__gnu_cxx::__normal_iterator<char const* (**)(dyld_image_states, 
unsigned int, dyld_image_info const*), std::vector<char const* 
(*)(dyld_image_states, unsigned int, dyld_image_info const*), 
std::allocator<char const* (*)(dyld_image_states, unsigned int, dyld_image_info 
const*)> > >, char const* (* const&)(dyld_image_states, unsigned int, 
dyld_image_info const*)) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC0546F: 
dyld::registerImageStateBatchChangeHandler(dyld_image_states, char const* 
(*)(dyld_image_states, unsigned int, dyld_image_info const*)) (in /usr/lib/dyld)
==29077==    by 0xECACB: dyld_register_image_state_change_handler (in 
/usr/lib/system/libdyld.dylib)
==29077==    by 0xEDACB: _dyld_initializer (in /usr/lib/system/libdyld.dylib)
==29077==    by 0x18E73: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==29077==    by 0x7FFF5FC0FD19: 
ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0FA65: 
ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0D257: 
ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned 
int, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077== 
==29077== 82 bytes in 6 blocks are still reachable in loss record 2 of 9
==29077==    at 0xB823: malloc (vg_replace_malloc.c:266)
==29077==    by 0x16D358: strdup (in /usr/lib/system/libsystem_c.dylib)
==29077==    by 0x3129B2: _xpc_strdup (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x318DC7: _xpc_dictionary_insert (in 
/usr/lib/system/libxpc.dylib)
==29077==    by 0x318F06: xpc_dictionary_set_string (in 
/usr/lib/system/libxpc.dylib)
==29077==    by 0x31AF49: _libxpc_initializer (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x18E7D: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==29077==    by 0x7FFF5FC0FD19: 
ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0FA65: 
ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0D257: 
ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned 
int, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC0D1F0: 
ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned 
int, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC0E02A: 
ImageLoader::runInitializers(ImageLoader::LinkContext const&, 
ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077== 
==29077== 88 bytes in 1 blocks are still reachable in loss record 3 of 9
==29077==    at 0xB823: malloc (vg_replace_malloc.c:266)
==29077==    by 0xF59B0: get_or_create_key_element (in 
/usr/lib/system/libkeymgr.dylib)
==29077==    by 0xF5BC9: _keymgr_get_and_lock_processwide_ptr_2 (in 
/usr/lib/system/libkeymgr.dylib)
==29077==    by 0xF5C36: __keymgr_initializer (in 
/usr/lib/system/libkeymgr.dylib)
==29077==    by 0x18E6E: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==29077==    by 0x7FFF5FC0FD19: 
ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0FA65: 
ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0D257: 
ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned 
int, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC0D1F0: 
ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned 
int, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC0E02A: 
ImageLoader::runInitializers(ImageLoader::LinkContext const&, 
ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC03487: dyld::initializeMainExecutable() (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0757F: dyld::_main(macho_header const*, unsigned long, 
int, char const**, char const**, char const**) (in /usr/lib/dyld)
==29077== 
==29077== 136 bytes in 1 blocks are still reachable in loss record 4 of 9
==29077==    at 0xC3F3: calloc (vg_replace_malloc.c:569)
==29077==    by 0x312AAA: _xpc_calloc (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x313384: _xpc_base_create (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x31CCEF: _xpc_domain_create (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x31AFDB: _libxpc_initializer (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x18E7D: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==29077==    by 0x7FFF5FC0FD19: 
ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0FA65: 
ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0D257: 
ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned 
int, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC0D1F0: 
ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned 
int, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC0E02A: 
ImageLoader::runInitializers(ImageLoader::LinkContext const&, 
ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC03487: dyld::initializeMainExecutable() (in 
/usr/lib/dyld)
==29077== 
==29077== 192 bytes in 6 blocks are still reachable in loss record 5 of 9
==29077==    at 0xB823: malloc (vg_replace_malloc.c:266)
==29077==    by 0x312AED: _xpc_malloc (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x318DAC: _xpc_dictionary_insert (in 
/usr/lib/system/libxpc.dylib)
==29077==    by 0x318F06: xpc_dictionary_set_string (in 
/usr/lib/system/libxpc.dylib)
==29077==    by 0x31AF49: _libxpc_initializer (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x18E7D: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==29077==    by 0x7FFF5FC0FD19: 
ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0FA65: 
ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0D257: 
ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned 
int, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC0D1F0: 
ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned 
int, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC0E02A: 
ImageLoader::runInitializers(ImageLoader::LinkContext const&, 
ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC03487: dyld::initializeMainExecutable() (in 
/usr/lib/dyld)
==29077== 
==29077== 366 bytes in 6 blocks are still reachable in loss record 6 of 9
==29077==    at 0xB823: malloc (vg_replace_malloc.c:266)
==29077==    by 0x16D358: strdup (in /usr/lib/system/libsystem_c.dylib)
==29077==    by 0x3129B2: _xpc_strdup (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x319CED: xpc_string_create (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x318EF5: xpc_dictionary_set_string (in 
/usr/lib/system/libxpc.dylib)
==29077==    by 0x31AF49: _libxpc_initializer (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x18E7D: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==29077==    by 0x7FFF5FC0FD19: 
ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0FA65: 
ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0D257: 
ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned 
int, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC0D1F0: 
ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned 
int, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC0E02A: 
ImageLoader::runInitializers(ImageLoader::LinkContext const&, 
ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077== 
==29077== 528 bytes in 6 blocks are still reachable in loss record 7 of 9
==29077==    at 0xC3F3: calloc (vg_replace_malloc.c:569)
==29077==    by 0x312AAA: _xpc_calloc (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x313384: _xpc_base_create (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x319CE2: xpc_string_create (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x318EF5: xpc_dictionary_set_string (in 
/usr/lib/system/libxpc.dylib)
==29077==    by 0x31AF49: _libxpc_initializer (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x18E7D: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==29077==    by 0x7FFF5FC0FD19: 
ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0FA65: 
ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0D257: 
ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned 
int, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC0D1F0: 
ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned 
int, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC0E02A: 
ImageLoader::runInitializers(ImageLoader::LinkContext const&, 
ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077== 
==29077== 608 bytes in 1 blocks are still reachable in loss record 8 of 9
==29077==    at 0xC3F3: calloc (vg_replace_malloc.c:569)
==29077==    by 0x312AAA: _xpc_calloc (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x313384: _xpc_base_create (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x3190D2: xpc_dictionary_create (in 
/usr/lib/system/libxpc.dylib)
==29077==    by 0x31AF20: _libxpc_initializer (in /usr/lib/system/libxpc.dylib)
==29077==    by 0x18E7D: libSystem_initializer (in /usr/lib/libSystem.B.dylib)
==29077==    by 0x7FFF5FC0FD19: 
ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0FA65: 
ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) (in 
/usr/lib/dyld)
==29077==    by 0x7FFF5FC0D257: 
ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned 
int, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC0D1F0: 
ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned 
int, ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC0E02A: 
ImageLoader::runInitializers(ImageLoader::LinkContext const&, 
ImageLoader::InitializerTimingList&) (in /usr/lib/dyld)
==29077==    by 0x7FFF5FC03487: dyld::initializeMainExecutable() (in 
/usr/lib/dyld)
==29077== 
==29077== 4,096 bytes in 1 blocks are still reachable in loss record 9 of 9
==29077==    at 0xB823: malloc (vg_replace_malloc.c:266)
==29077==    by 0x17A3F7: __smakebuf (in /usr/lib/system/libsystem_c.dylib)
==29077==    by 0x170D19: __swsetup (in /usr/lib/system/libsystem_c.dylib)
==29077==    by 0x1A6D2D: __sfvwrite (in /usr/lib/system/libsystem_c.dylib)
==29077==    by 0x140E2E: puts (in /usr/lib/system/libsystem_c.dylib)
==29077==    by 0x100000F06: main (test.c:5)
==29077== 
==29077== LEAK SUMMARY:
==29077==    definitely lost: 0 bytes in 0 blocks
==29077==    indirectly lost: 0 bytes in 0 blocks
==29077==      possibly lost: 0 bytes in 0 blocks
==29077==    still reachable: 6,104 bytes in 29 blocks
==29077==         suppressed: 0 bytes in 0 blocks
==29077== 
==29077== For counts of detected and suppressed errors, rerun with: -v
==29077== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)

------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
Valgrind-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to