Задать вопрос

Как проверить на утечки памяти?

Видел, есть строки кода, когда вставляешь в main в режиме debug выдает в вывод студии утечки памяти
  • Вопрос задан
  • 4488 просмотров
Подписаться 3 Простой Комментировать
Решения вопроса 3
@MarkusD Куратор тега C++
все время мелю чепуху :)
Больше трех лет пользуюсь инструментом Visual Leak Detector. Это тихий и неприхотливый инструмент, требующий соблюдения всего двух правил: вписать один include в одном cpp и собрать отладочную конфигурацию проекта.

После завершения отлаживаемого процесса, VLD пишет в (файл/консоль/debug output) все найденные утечки со стеками выделения утекшей памяти. К отчету об утечке, помимо стека, еще добавляется HEX dump самого участка памяти, чтобы можно было на глаз сориентироваться, что за память утекла.
А если утечек нет, VLD утешительно говорит что все нормально.

Проект является открытым, доступен на github, стабильно развивается, выкладывается для современных версий Visual Studio и доступен из Extensions Manager самой студии.

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

Ну и, безусловно, всегда есть valgrind memcheck, который по своей сути является sandbox-ом памяти и с радостью покажет тебе не только утечку, но и любой heap corruption, любое неправомерное обращение к памяти, которое ты будешь просто не в состоянии отловить руками или глазами.
Насколько я помню, за последние 2-3 года valgrind так и не стал кроссплатформенным.
Ответ написан
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
Я обычно использую valgrind
Ответ написан
Комментировать
@cicatrix
было бы большой ошибкой думать
Почти все инструменты проприетарные и платные. Бесплатные аналоги либо находят не всё, либо вообще не работают.
На stackoverflow есть обзор.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы