Детекторы утечки памяти для C? - PullRequest
30 голосов
/ 10 сентября 2008

С какими детекторами утечки памяти у людей был хороший опыт?

Вот краткое изложение ответов:

Valgrind - Платформа инструментов для создания инструментов динамического анализа.

Электрический забор - Инструмент, который работает с GDB

Шина - Облегченная статическая проверка при помощи аннотаций

Glow Code - Это полный анализатор производительности и памяти в реальном времени для программистов Windows и .NET, которые разрабатывают приложения на C ++, C # или любом .NET Framework

Также смотрите это сообщение stackoverflow .

Ответы [ 17 ]

17 голосов
/ 10 сентября 2008

секунда valgrind ... и я добавлю электрический забор .

11 голосов
/ 10 сентября 2008

Valgrind под Linux довольно хорош; У меня нет опыта работы с Windows под этим.

3 голосов
/ 10 ноября 2008

Mudflap для GCC! Это на самом деле компилирует проверки в исполняемый файл. Просто добавьте

-fmudflap -lmudflap

на ваши флаги gcc.

3 голосов
/ 26 сентября 2008

Если у вас есть деньги: IBM Rational Purify - чрезвычайно мощный промышленный детектор утечки памяти и повреждения памяти для C / C ++. Существует для Windows, Solaris и Linux. Если вы только для Linux и хотите дешевое решение, выберите Valgrind.

2 голосов
/ 18 сентября 2012

У меня было довольно много попаданий с cppcheck , который выполняет только статический анализ. Это открытый исходный код и имеет интерфейс командной строки (я не использовал его по-другому).

2 голосов
/ 11 ноября 2008

Также стоит использовать, если вы используете Linux, glibc - это встроенный код кучи отладки. Чтобы использовать его, свяжите с -lmcheck или определите (и экспортируйте) переменную окружения MALLOC_CHECK_ со значением 1, 2 или 3. Руководство glibc предоставляет дополнительную информацию.

Этот режим наиболее полезен для обнаружения двойных освобождений, и он часто находит записи вне выделенной области памяти, когда делает освобождение. Я не думаю, что это сообщает об утечке памяти.

2 голосов
/ 10 сентября 2008

Больно, но если вам пришлось использовать один ..
Я бы порекомендовал набор DevPartner BoundsChecker ... именно это люди на моем рабочем месте используют для этой цели. Заплатил n проприетарный .. не бесплатное.

2 голосов
/ 10 сентября 2008

lint (очень похожий инструмент с открытым исходным кодом, называемый splint )

1 голос
/ 11 ноября 2008

В Windows я использовал Визуальный детектор утечек . Интегрируется с VC ++, прост в использовании (просто включите заголовок и установите LIB, чтобы найти библиотеку), с открытым исходным кодом, бесплатное использование FTW.

1 голос
/ 10 сентября 2008

У меня была минимальная любовь к любым детекторам утечки памяти. Как правило, слишком много ложных срабатываний для них, чтобы их можно было использовать. Я бы порекомендовал этих двоих как наименее навязчивых:

GlowCode

Куча отладки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...