Отслеживание утечек памяти
От: AlexGin Беларусь  
Дата: 24.02.19 10:19
Оценка:
Доброе время суток, уважаемые коллеги!

Подумал я системетизировать мои представления о программах контроля утечек памяти в проектах на C++.

IMHO наиболее популярная тулза при работе в студии — VLD (Visual Leak Detector):
https://archive.codeplex.com/?p=vld

Наиболее свежая версия студии, с которой умеет работать VLD, это MSVC 2015.

Возможно, есть ещё достаточно востребованные тулзы?
Что насчет подобных средств для MSVC 2017?

Какие альтернативные инструменты имеются для Linux?
Например, насколько популярен тот же Valgrind?

P.S. Гугление на данную тему, выявляет много интересных моментов.
Меня же больше всего интересуют популярные free-шные решения.
Отредактировано 24.02.2019 10:37 AlexGin . Предыдущая версия . Еще …
Отредактировано 24.02.2019 10:31 AlexGin . Предыдущая версия .
Re: Отслеживание утечек памяти
От: a7d3  
Дата: 24.02.19 10:54
Оценка: +1
Здравствуйте, AlexGin, Вы писали:

AG>Какие альтернативные инструменты имеются для Linux?

AG>Например, насколько популярен тот же Valgrind?

А что никак не спросить ребят из JetBrains? Почему они в своём CLion встроили поддержку Valgrind прямо из коробки, вместо других инструментов?
Re[2]: Отслеживание утечек памяти
От: AlexGin Беларусь  
Дата: 24.02.19 13:09
Оценка:
Здравствуйте, a7d3, Вы писали:
...

Вот:
https://www.jetbrains.com/help/clion/memory-profiling-with-valgrind.html
Это оно?
Re[2]: Отслеживание утечек памяти
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 24.02.19 13:14
Оценка:
Здравствуйте, a7d3, Вы писали:

A>А что никак не спросить ребят из JetBrains? Почему они в своём CLion встроили поддержку Valgrind прямо из коробки, вместо других инструментов?


И в Qt Creator аналогично.
Re: Отслеживание утечек памяти
От: zubactik  
Дата: 24.02.19 13:14
Оценка:
A AddressSanitizer? Можно и под винду собрать попытаться.
Re[2]: Отслеживание утечек памяти
От: AlexGin Беларусь  
Дата: 24.02.19 13:29
Оценка:
Здравствуйте, zubactik, Вы писали:

Z>A AddressSanitizer? Можно и под винду собрать попытаться.


Смотрю не это яавление, там всё под GCC. Для Linux — самое то, что надо. Под винду — вряд-ли.
Re: Отслеживание утечек памяти
От: reversecode google
Дата: 24.02.19 13:35
Оценка:
https://sourceforge.net/projects/diagnostic/
лучше чем это для реалтайм приложений не нашел
все остальные либо тормозили либо вообще не пойми что выдавали

а вообще если есть доступ к исходному коду
то на коленке можно и свой придумать
Re[3]: Отслеживание утечек памяти
От: a7d3  
Дата: 24.02.19 14:08
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Здравствуйте, a7d3, Вы писали:

AG>...

AG>Вот:

AG>https://www.jetbrains.com/help/clion/memory-profiling-with-valgrind.html
AG>Это оно?

Оно, уже давным-давно стандарт де-факто для прыщей (линуксовых систем). Для примера, можно найти запросы на добавление поддержки Valgrind в ранние версии KDevelop в районе 2003-года.

Из недавно появившегося — стали набирать обороты санитайзеры из LLVM-овского тулчейна, но это скорее в BSD-мире и на Mac-ах, где CLang уже несколько лет как заменил GCC.
Re: Отслеживание утечек памяти
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 24.02.19 14:17
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Подумал я системетизировать мои представления о программах контроля утечек памяти в проектах на C++.


Мы ловим санитайзерами, AddressSanitizerLeakSanitizer в данном случае. Главная сложность — это переловить все лики в первый раз так как приложение под санитайщерами падает сразу, как только обнаружилась проблема. А потом просто ставишь сборку под санитайзерами как часть CI, и гоняешь тесты как часть сборочного процесса, красота!
Re[3]: Отслеживание утечек памяти
От: zubactik  
Дата: 24.02.19 14:40
Оценка:
Нет, изначально там все под llvm/clang. Потом добавили в GCC. Под виндой в зависимости от потребностей может и заработать сборка на clang.

Может ещё есть какие специфичнве требования? Ну чтобы зря не писать.

Так-то ещё в виде Application Verifier есть. Но пока кроме тормозов приложения никакого толку от него получить не удалось.
Re[4]: Отслеживание утечек памяти
От: AlexGin Беларусь  
Дата: 24.02.19 15:14
Оценка:
Здравствуйте, zubactik, Вы писали:

Z>Нет, изначально там все под llvm/clang. Потом добавили в GCC. Под виндой в зависимости от потребностей может и заработать сборка на clang.

Z>Может ещё есть какие специфичнве требования? Ну чтобы зря не писать.

Требования — самые общие. Какой-либо специфики нет.
Преобладает — разработка в среде MSVC. Несколько реже — Qt Creator (под Linux).

Z>Так-то ещё в виде Application Verifier есть. Но пока кроме тормозов приложения никакого толку от него получить не удалось.


Это, я так понял, оно:
https://stackoverflow.com/questions/2955858/how-to-use-application-verifier-to-find-memory-leaks
Re[2]: Отслеживание утечек памяти
От: zubactik  
Дата: 24.02.19 15:19
Оценка:
Здравствуйте, kaa.python, а где такие разработчики обитают?
Re: Отслеживание утечек памяти
От: AlexGin Беларусь  
Дата: 25.02.19 04:46
Оценка:
Здравствуйте, AlexGin, Вы писали:
...
AG>Что насчет подобных средств для MSVC 2017?
...
ПРИМЕЧАНИЕ:
В среде MSVC 2017, при применении Platform Toolset v 140 (который характерен для MSVC 2015), —
отслеживание утечек памяти при помощи VLD (v 2.5.1) — работает как швейцарские часы.
Re: Отслеживание утечек памяти
От: Alexander G Украина  
Дата: 25.02.19 05:09
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Возможно, есть ещё достаточно востребованные тулзы?

AG>Что насчет подобных средств для MSVC 2017?

Как основной инструмент использую umdh из Debugging Tools for Windows

Это динамическое средство анализа, позволяет выявлять heap утечки.
Инструктирование без перекомпиляции, оно встроено в системные RtlHeap* фукции.
То есть, находятся утечки malloc/new/HeapAlloc в своём и чужом коде, не находяся не-hrap утечки, такие как VirtualAlloc

Ещё использую этот же инструмент, когда утечки вроде бы нет, но всё равно хочу понять, куда делась память.
Русский военный корабль идёт ко дну!
Re: Отслеживание утечек памяти
От: Igore Россия  
Дата: 25.02.19 06:06
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Подумал я системетизировать мои представления о программах контроля утечек памяти в проектах на C++.


AG>P.S. Гугление на данную тему, выявляет много интересных моментов.

AG>Меня же больше всего интересуют популярные free-шные решения.
Можно посмотреть на встроеную в студию поддержку(кажется зависит от редакции студии), performance-monitor
Можно еще вроде с VTune поиграться(не free но триал глянуть ради интереса стоит), я его для анализа узких мест использовал, вроде там была возможность поискать утечки.
Re[3]: Отслеживание утечек памяти
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 25.02.19 10:40
Оценка:
Здравствуйте, zubactik, Вы писали:

Z>Здравствуйте, kaa.python, а где такие разработчики обитают?

В сингапурском финтехе.
Sic luceat lux!
Re: Отслеживание утечек памяти
От: AlexGin Беларусь  
Дата: 16.06.19 06:37
Оценка:
...
AG>Возможно, есть ещё достаточно востребованные тулзы?
AG>Что насчет подобных средств для MSVC 2017?

Оказывается VLD как инструмент — можно применять и для MSVC 2017
Как для Win32, так и для x64!

Может потребоваться настройка одной из опций линкера:


Вот по-подробнее:
https://stackoverflow.com/questions/44708137/visual-leak-detector-with-visual-studio-2017-no-source-code-line-numbers
Отредактировано 16.06.2019 20:40 AlexGin . Предыдущая версия .
Re: Отслеживание утечек памяти
От: B0FEE664  
Дата: 18.06.19 11:33
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Подумал я системетизировать мои представления о программах контроля утечек памяти в проектах на C++.


Последний раз утечку памяти на С++ я видел в 2010-ом году и то только потому, что его студенты писали. Если у вас есть утечки памяти, значит вы не правильно используете С++.
И каждый день — без права на ошибку...
Re[2]: Отслеживание утечек памяти
От: AlexGin Беларусь  
Дата: 19.06.19 19:19
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Последний раз утечку памяти на С++ я видел в 2010-ом году и то только потому, что его студенты писали. Если у вас есть утечки памяти, значит вы не правильно используете С++.


Да я понимаю, что сейчас смарт-пойнтеры имеются (сам ими нередко усердствую) но и старый добрый new/delete иногда нужен
Re: Отслеживание утечек памяти
От: Слава  
Дата: 19.06.19 20:17
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Меня же больше всего интересуют популярные free-шные решения.


Переписать на Rust ещё не советовали?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.