Поиск Memory Leaks в VisualStudio (комментарии)
Это сообщение сгенерировано автоматически.
Есть хорошая библиотека для студии, Visual Leak Detector. В общем, надо только заголовок вставить и вместе с lib откомпилить.
и можно приписать ещё такое
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
что бы и new тож нормально отслеживался.
ток же можно перенаправить вывод в файл, бо Output не всегда удобно
HANDLE hLogFile; _CrtSetReportMode (_CRT_WARN, _CRTDBG_MODE_FILE); _CrtSetReportFile (_CRT_WARN, hLogFile); _CrtSetReportMode (_CRT_ERROR, _CRTDBG_MODE_FILE); _CrtSetReportFile (_CRT_ERROR, hLogFile); _CrtSetReportMode (_CRT_ASSERT, _CRTDBG_MODE_FILE); _CrtSetReportFile (_CRT_ASSERT, hLogFile);
Visual Leak Detector отличная вещь, но тормозная. Кстати new нормально обрабатывает и стек сразу показывает. В указанном методе смущает потенциальная сложность повторения codepath, чтобы сохранился номер блока
Она тормозит, лишь выдавая результаты анализа и тем дольше, чем больше дырок сделали.
MarkoPolo
> Она тормозит,
кто? Visual Leak Detector??
MarkoPolo
> Она тормозит, лишь выдавая результаты анализа и тем дольше, чем больше дырок
> сделали.
ну да, конечно... попробуй поставить глубину стека хотя бы 10 и подключить vld к проекту на 150 000 строк, использующему какой-нибудь wxWidgets... там просто запуск проги превращается плавно в чаепитие...
Зато утечки ищет замечательно
jaxon
Таки подключи заголовок позже...
MarkoPolo
> Таки подключи заголовок позже...
эм... то есть?
jaxon
В общем, ступил.
#if defined(_DEBUG) && defined( _CRTDBG_MAP_ALLOC) && defined( __cplusplus) && !defined( _DEBUG_NEW) inline void *__cdecl operator new( size_t _size, const char *_file_name, int _line) { return ::operator new( _size, 1, _file_name, _line); } #define _DEBUG_NEW new( __FILE__, __LINE__) #define new _DEBUG_NEW #endif _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF | _CRTDBG_CHECK_ALWAYS_DF | _CRTDBG_DELAY_FREE_MEM_DF);
а у меня почему-то не работает, в который раз пробую и всё равно не работает
может директХ скомпилированный в режиме отладки мешает?
а ну его,
народ, скажите лучше а Visual Leak Detector 2.0b в 2008-й студии у вас работает?
Barbar1an
в 2010 работает. в 2008 - хз :)))
Всё работает, студия тут совсем не при чём, дамп пишется в текстовый файл, можно читать вручную, а можно накостылить на перле или питоне пару скриптов для анализа лога, сортировки по убыванию и группировки по размеру.
Тема в архиве.