Ответ 1
Я лично использую Visual Leak Detector, хотя он может вызвать большие задержки при утечке больших блоков (он отображает содержимое всего просочившегося блока).
У меня есть .exe и много модулей plug-in.dll, которые загружает .exe. (У меня есть источник для обоих.) Решение для кросс-платформенных (с исходным) было бы идеальным, но платформа может быть сужена до WinXP и Visual Studio (7.1/2003 в моем случае).
Встроенный детектор утечки VS предоставляет только строку, из которой был вызван новый /malloc, но у меня есть оболочка для распределений, поэтому лучше всего будет иметься трассировка символа в виде столбца.
Детектор также сможет обнаруживать утечку как в .exe, так и в своих подключаемых модулях .dll.
Я лично использую Visual Leak Detector, хотя он может вызвать большие задержки при утечке больших блоков (он отображает содержимое всего просочившегося блока).
Если вы не хотите перекомпилировать (как требуется Visual Leak Detector), я бы рекомендовал WinDbg, который является мощным и быстрым (хотя это не так просто, как хотелось бы).
С другой стороны, если вы не хотите связываться с WinDbg, вы можете взглянуть на UMDH, который также разработан Microsoft и его легче изучить.
Взгляните на эти ссылки, чтобы узнать больше о WinDbg, утечке памяти и управлении памятью в целом:
У меня были хорошие впечатления от Rational Purify. Я также слышал хорошие вещи о Valgrind
Как для меня, я использую deleaker для обнаружения утечек. Я рад.
Мой свободный доступный профайлер памяти MemPro позволяет сравнивать 2 моментальных снимка и дает трассировки стека для всех распределений.
Попробуйте Детектор утечки Йохен Калмбаха в проекте кода. URL-адрес последней версии был где-то в комментариях, когда я последний раз проверял.
Как уже сообщал мой друг, у С++ есть много детекторов утечек. Все это вызовет накладные расходы при запуске вашего кода, примерно на 20% медленнее. Я предпочитаю Visual Leak Detector для Visual С++ 2008/2010/2012, вы можете скачать исходный код с ввести описание ссылки здесь.