Valgrind zgłasza wyciek pamięci w systemie OS X 10.8.1

Używam Valgrind w wersji 3.8.0 na OS X 10.8.1, Mountain Lion. Odnośnie kompatybilności z 10.8.1,Strona Valgrinda mówi (kursywa moja):

Valgrind 3.8.0 działa {x86, amd64} -darwin (Mac OS X 10.6 i 10.7, z ograniczoną obsługą 10.8).

Wiem więc, że istnieje tylko „ograniczone wsparcie” dla 10.8.1. Niemniej jednak,ten raport o błędzie mówi (kursywa moja):

To(najnowsze wydanie 3.8.0) sprawiaValgrind skompiluj i uruchom małe programy na OSX 10.8. Ostrzegaj jednak, że nadal zapewnia większe aplikacje, a programy 32-bitowe w ogóle nie są poprawnie sprawdzane (większość błędów jest pomijana przez Memcheck).

W porządku. Więc Valgrind powinien działać, jeśli jest temperamentem, na 10.8.1. Więc teraz moje pytanie:

Udało mi się skompilować Valgrinda na 10.8.1 bez większych problemów, ale zobaczyłem dziwne wyniki, gdy uruchomiłem go na kilku małych programach w C. Aby spróbować zmniejszyć możliwe przyczyny tego problemu, ostatecznie napisałem następujący „program”:

int main () {                                                               
    return 0;
}

Nie bardzo ekscytujące, i powiedziałbym, że jest mało miejsca na robaki. Następnie skompilowałem i uruchomiłem go przez Valgrind:

gcc testC.c
valgrind ./a.out

Oto moje dane wyjściowe:

==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)

Wiem, że Valgrind nie jest gotowy na czas główny w 10.8.1. Niemniej jednak chciałbym móc go tutaj wykorzystać - muszę go używać tylko w małych programach i nic nie jest krytyczne, jeśli chodzi o wyniki. Ale wyraźnie zgłasza mnóstwo wycieków w programie, który wydaje się bardzo mało prawdopodobny. A zatem:

Co mam zrobić, aby to naprawić?

Inne informacje:

Dodawanie celowo przeciekanej liczby całkowitejrobi zwiększ liczbę „zdecydowanie utraconych” o odpowiednie 4 bajty.Podobnie celowo wyciek połączenia do malloc, nie zwalniając pamięcirobi zwiększ odpowiednio liczbę alokacji sterty.Kompilowanie za pomocą-g flagę, a następnie uruchomiony do Valgrind (aby zaadresowaćdSYM directory is missing błąd) powoduje, że błąd zniknie, alenie zmienić problem zgłaszanych ton wycieków pamięci.

questionAnswers(3)

yourAnswerToTheQuestion