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