Войти
ПрограммированиеФорумОбщее

Поиск Memory Leaks в VisualStudio (комментарии)

Страницы: 1 2 Следующая »
#0
17:24, 29 дек 2009

Поиск Memory Leaks в VisualStudio (комментарии)

Это сообщение сгенерировано автоматически.

#1
17:24, 29 дек 2009

Есть хорошая библиотека для студии, Visual Leak Detector. В общем, надо только заголовок вставить и вместе с lib откомпилить.

#2
17:42, 30 дек 2009

и можно приписать ещё такое

#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);
#3
19:38, 30 дек 2009

Visual Leak Detector отличная вещь, но тормозная. Кстати new нормально обрабатывает и стек сразу показывает. В указанном методе смущает потенциальная сложность повторения codepath, чтобы сохранился номер блока

#4
11:13, 31 дек 2009

Она тормозит, лишь выдавая результаты анализа и тем дольше, чем больше дырок сделали.

#5
19:54, 31 дек 2009

MarkoPolo
> Она тормозит,
кто? Visual Leak Detector??

#6
23:50, 1 янв 2010

MarkoPolo
> Она тормозит, лишь выдавая результаты анализа и тем дольше, чем больше дырок
> сделали.
ну да, конечно... попробуй поставить глубину стека хотя бы 10 и подключить vld к проекту на 150 000 строк, использующему какой-нибудь wxWidgets... там просто запуск проги превращается плавно в чаепитие...

Зато утечки ищет замечательно

#7
1:06, 2 янв 2010

jaxon
Таки подключи заголовок позже...

#8
2:08, 2 янв 2010

MarkoPolo
> Таки подключи заголовок позже...
эм... то есть?

#9
16:45, 2 янв 2010

jaxon
В общем, ступил.

#10
15:17, 11 июня 2010
#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);
Прошло более 7 месяцев
#11
21:05, 25 янв 2011

а у меня почему-то не работает, в который раз пробую и всё равно не работает

может директХ скомпилированный в режиме отладки мешает?

#12
23:50, 25 янв 2011

а ну его,
народ, скажите лучше а Visual Leak Detector 2.0b в 2008-й студии у вас работает?

#13
12:28, 26 янв 2011

Barbar1an
в 2010 работает. в 2008 - хз :)))

#14
13:02, 26 янв 2011

Всё работает, студия тут совсем не при чём, дамп пишется в текстовый файл, можно читать вручную, а можно накостылить на перле или питоне пару скриптов для анализа лога, сортировки по убыванию и группировки по размеру.

Страницы: 1 2 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.