Нужен инструмент для обнаружения утечек памяти в коде C - PullRequest
4 голосов
/ 19 марта 2010

Есть ли хорошее приложение (которое имеет какой-то графический интерфейс) для тестирования утечек памяти в коде c. Я действительно хотел бы проверить свое назначение / программу, но, будучи очень новым для этого, я борюсь с использованием терминала для выполнения каких-либо задач, особенно с использованием gdb для отладки (для меня это похоже на взрыв из прошлого, где я мог бы использовать некоторые визуальный отладчик).

Спасибо за помощь

edit: платформа не имеет значения - я запускаю все;)

Ответы [ 6 ]

17 голосов
/ 19 марта 2010

В зависимости от платформы (вы не упоминаете об этом) Valgrind отлично подходит для систем Linux. У него нет графического интерфейса, но он не нужен.

Просто запустите valgrind <path to your application + arguments>, и оно запустит ваше приложение и выплюнет любые ошибки во время операций с памятью.

Добавьте опции --leak-check=full и --show-reachable=yes после valgrind, чтобы получить следы стека, где происходят утечки памяти.

2 голосов
/ 19 марта 2010

Purify - отличное приложение для этого.

1 голос
/ 19 марта 2010

В Windows HeapMon может представлять некоторый интерес, хотя он явно не говорит вам, где ваши утечки.

1 голос
/ 19 марта 2010

Есть графический интерфейс для анализа результатов Valgrind: http://alleyoop.sourceforge.net/. Кроме того, есть (несвободная) Очистить , что здорово, и я считаю, что есть испытание. Имеет графический интерфейс.


0 голосов
/ 19 марта 2010

Если вы используете DevStudio от Microsoft, то библиотека времени выполнения C имеет множество встроенных инструментов отслеживания выделения памяти:

Куча отладки

_CrtSetDbgFlag

Меня поражает, как мало программистов знают об этих инструментах!

0 голосов
/ 19 марта 2010

valgrind довольно хорош в Linux, но у него есть только интерфейс командной строки

...