2013-04-25 1 views
7

Valgrind установлен с использованием варева.Valgrind показывает утечку памяти на пустой программе на 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

Что такое 'ImageLoaderMach0'? – Alex

+0

Я не уверен. Я получил большую кучу сообщения об ошибке выше этого. –

+1

@Alex Mach - это имя основного ядра на этой ОС. Mach-O - это имя исполняемого файла (http://en.wikipedia.org/wiki/Mach-O). «ImageLoader» Я оставлю вашу интерпретацию. Обратите внимание, что «ImageLoaderMach0» не является частью входных данных OP, и, по сути, OP задал этот вопрос, потому что он не полностью знает, что делает этот кусок кода (дайте или возьмите). –

ответ

6

Это не утечка памяти, о которой вам нужно беспокоиться. ImageLoader является частью среды выполнения OS X и отвечает за загрузку двоичных файлов и динамических библиотек. Он выделяет некоторую память один раз, во время инициализации и забывает об этом, но это безобидно, потому что это небольшой блок памяти, выделенный только один раз. И это куча вещей, которые Вальгринд не любит, но это неверно. Вы должны add these to your suppression file.

2

поддержка Mac OSX 10.8 в Valgrind по-прежнему ограничено. ImageLoaderMachO :: doInitialization ... должен быть в вашем файле подавления.

1

Другой ответ правильный, у меня просто была такая же проблема, и у меня была небольшая проблема с созданием файла подавления. Итак, чтобы помочь другим, вот минимальный файл подавления, который я сгенерировал для Mac OS X Mountain Lion: https://www.dropbox.com/s/2btyqnf8uesgsis/minimal.supp

+1

Ссылка больше не активна. – JoshBramlett

 Смежные вопросы

  • Нет связанных вопросов^_^