2013-04-25 10 views
7

Valgrind zainstalowany przy parzeniu.Valgrind pokazuje wyciek pamięci w pustym programie na Mac OSX 10.8

#include <stdio.h> 
#include <stdlib.h> 
int main() 
{ 
    return 0; 
} 

gcc -g -o hello hello.c 

valgrind --tool=memcheck --leak-check=yes ./hello 

enter image description here

+0

Co to jest "ImageLoaderMach0"? – Alex

+0

Nie jestem pewien. Dostałem dużą stertę komunikatu o błędzie powyżej. –

+1

@Alex Mach to nazwa podstawowego jądra systemu operacyjnego. Mach-O to nazwa formatu wykonywalnego (http://en.wikipedia.org/wiki/Mach-O). "ImageLoader" Zostawię twojej interpretacji. Zauważ, że "ImageLoaderMach0" nie jest częścią danych wejściowych PO i że, zasadniczo, OP zadał to pytanie, ponieważ nie do końca wie, co robi ten fragment kodu (dać lub wziąć). –

Odpowiedz

6

To nie jest wyciek pamięci, o który musisz się martwić. ImageLoader jest częścią środowiska uruchomieniowego OS X i jest odpowiedzialny za ładowanie plików binarnych i dynamicznych bibliotek. Przydziela pewną pamięć raz, podczas inicjalizacji i zapomina o niej, ale jest nieszkodliwa, ponieważ jest to mały blok pamięci przydzielony tylko raz. I robi wiele rzeczy, których Valgrind nie lubi, ale które nie są niepoprawne. Powinieneś add these to your suppression file.

2

Mac OSX 10.8 wsparcie w Valgrind jest nadal ograniczona. ImageLoaderMachO :: doInitialization ... powinien znajdować się w pliku tłumienia.