Альтернатива valgrind (memcheck) для поиска утечек в Linux? - PullRequest
17 голосов
/ 14 сентября 2011

У меня есть приложение linux x86, которое использует различные сторонние библиотеки разделяемых объектов. Я подозреваю, что в этих библиотеках происходит утечка памяти (поскольку это не может быть мой код; -)

Я попробовал верный valgrind, но он умер ужасной смертью, потому что одна из сторонних библиотек использует неясную инструкцию x86 , которую valgrind не реализует .

Я нашел рекомендацию для DUMA и попробовал ее (используя технику LD_PRELOAD для включения DUMA во время выполнения), но он прервал жалобу на свободную операцию с памятью, которая не была выделена через DUMA (почти наверняка некоторым конструктором статического объекта в одной из упомянутых ранее сторонних библиотек).

Существуют ли другие инструменты для работы во время выполнения (или иным образом не требующие перекомпиляции / перекомпоновки), которые будут работать на linux?

Ответы [ 3 ]

5 голосов
/ 12 мая 2012

Даешь Др. Память попробовать. Он основан на DynamoRIO и разделяет многие функции с Valgrind.

5 голосов
/ 14 сентября 2011

Отладчик TotalView (или, точнее, его Memscope) имеет набор функций, аналогичный Valgrind.

Вы также можете попробовать Electric Fence ( оригинальная авторская ссылка ) (источник DUMA) для переполнения буфера или случаев без касания после (но не для мемликс, хотя).

0 голосов
/ 10 апреля 2017

Heapusage - это простой инструмент времени выполнения для обнаружения утечек памяти в Linux и macOS. Формат регистрации выходных данных для утечек очень похож на Valgrind, но он регистрирует только определенные утечки (то есть выделения не свободны при завершении).

Полное раскрытие: я написал Heapusage для использования в ситуациях, когда Valgrind не подходит (высокопроизводительные приложения, а также для архитектур ЦП, не поддерживаемых Valgrind).

...