Valgrind сообщает об утечке памяти в OS X 10.8.1

Я использую Valgrind версии 3.8.0 на OS X 10.8.1, Mountain Lion. Что касается совместимости с 10.8.1,Сайт Valgrind говорит (курсив мой):

Valgrind 3.8.0 works on {x86,amd64}-darwin (Mac OS X 10.6 and 10.7, with limited support for 10.8).

Я знаю, что существует только «ограниченная поддержка». для 10.8.1. Тем не менее,этот отчет об ошибке говорит (курсив мой):

This (the latest 3.8.0 release) makes Valgrind compile and able to run small programs on OSX 10.8. Be warned however that it still asserts with bigger apps, and 32 bit programs are not checked properly at all (most errors are missed by Memcheck).

Хорошо, это нормально. Так что Valgrind должен работать, если темпераментно, на 10.8.1. Итак, теперь мой вопрос:

Я смог заставить Valgrind скомпилировать 10.8.1 без особых проблем, но я увидел странные результаты, когда запустил его на паре небольших программ на Си. Чтобы попытаться уменьшить возможные причины проблемы, я в конце концов написал следующую «программу»:

int main () {                                                               
    return 0;
}

Не очень захватывающе, и мало места для ошибок, я бы сказал. Затем я скомпилировал и запустил его через Valgrind:

gcc testC.c
valgrind ./a.out

Вот мой вывод:

==45417== Command: ./a.out
==45417== 
==45417== WARNING: Support on MacOS 10.8 is experimental and mostly broken.
==45417== WARNING: Expect incorrect results, assertions and crashes.
==45417== WARNING: In particular, Memcheck on 32-bit programs will fail to
==45417== WARNING: detect any errors associated with heap-allocated data.
==45417== 
--45417-- ./a.out:
--45417-- dSYM directory is missing; consider using --dsymutil=yes
==45417== 
==45417== HEAP SUMMARY:
==45417==     in use at exit: 58,576 bytes in 363 blocks
==45417==   total heap usage: 514 allocs, 151 frees, 62,442 bytes allocated
==45417== 
==45417== LEAK SUMMARY:
==45417==    definitely lost: 8,624 bytes in 14 blocks
==45417==    indirectly lost: 1,168 bytes in 5 blocks
==45417==      possibly lost: 4,925 bytes in 68 blocks
==45417==    still reachable: 43,859 bytes in 276 blocks
==45417==         suppressed: 0 bytes in 0 blocks
==45417== Rerun with --leak-check=full to see details of leaked memory
==45417== 
==45417== For counts of detected and suppressed errors, rerun with: -v
==45417== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

Я знаю, что Valgrind не готов к прайм-тайму 10.8.1. Тем не менее, я бы хотел использовать его здесь & # x2013; Мне нужно использовать его только в небольших программах, и ничто не является критически важным для получения точных результатов. Но ясно, что он сообщает о множестве утечек в программе, которая, как представляется, вряд ли протекает. Таким образом:

What should I do to fix this?

Другая информация:

Adding an intentionally leaked integer does increment the "definitely lost" count by the appropriate 4 bytes. Similarly, intentionally leaking a call to malloc by not freeing the memory does increment the heap alloc count appropriately. Compiling with the -g flag and then running to Valgrind (to address the dSYM directory is missing error) does cause that error to disappear, but does not change the issue of tons of memory leaks being reported.

Ответы на вопрос(3)

Ваш ответ на вопрос