Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Поиск Memory Leaks в VisualStudio (комментарии)

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

Страницы: 1 2 Следующая »
NULL_PTRПостоялецwww29 дек. 200917:24#0
Поиск Memory Leaks в VisualStudio (комментарии)

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

MarkoPoloПостоялецwww29 дек. 200917:24#1
Есть хорошая библиотека для студии, Visual Leak Detector. В общем, надо только заголовок вставить и вместе с lib откомпилить.
SmoukingПостоялецwww30 дек. 200917:42#2
и можно приписать ещё такое
#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);

serpinfПостоялецwww30 дек. 200919:38#3
Visual Leak Detector отличная вещь, но тормозная. Кстати new нормально обрабатывает и стек сразу показывает. В указанном методе смущает потенциальная сложность повторения codepath, чтобы сохранился номер блока
MarkoPoloПостоялецwww31 дек. 200911:13#4
Она тормозит, лишь выдавая результаты анализа и тем дольше, чем больше дырок сделали.
SmoukingПостоялецwww31 дек. 200919:54#5
MarkoPolo
> Она тормозит,
кто? Visual Leak Detector??
serpinfПостоялецwww1 янв. 201023:50#6
MarkoPolo
> Она тормозит, лишь выдавая результаты анализа и тем дольше, чем больше дырок
> сделали.
ну да, конечно... попробуй поставить глубину стека хотя бы 10 и подключить vld к проекту на 150 000 строк, использующему какой-нибудь wxWidgets... там просто запуск проги превращается плавно в чаепитие...

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

MarkoPoloПостоялецwww2 янв. 20101:06#7
jaxon
Таки подключи заголовок позже...
serpinfПостоялецwww2 янв. 20102:08#8
MarkoPolo
> Таки подключи заголовок позже...
эм... то есть?
MarkoPoloПостоялецwww2 янв. 201016:45#9
jaxon
В общем, ступил.
АлмазПостоялецwww11 июня 201015:17#10
#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);

Barbar1anПостоялецwww25 янв. 201121:05#11
а у меня почему-то не работает, в который раз пробую и всё равно не работает

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

Barbar1anПостоялецwww25 янв. 201123:50#12
а ну его,
народ, скажите лучше а Visual Leak Detector 2.0b в 2008-й студии у вас работает?
GurichПостоялецwww26 янв. 201112:28#13
Barbar1an
в 2010 работает. в 2008 - хз :)))
kvakvsПостоялецwww26 янв. 201113:02#14
Всё работает, студия тут совсем не при чём, дамп пишется в текстовый файл, можно читать вручную, а можно накостылить на перле или питоне пару скриптов для анализа лога, сортировки по убыванию и группировки по размеру.
Страницы: 1 2 Следующая »

/ Форум / Программирование игр / Общее

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

2001—2018 © GameDev.ru — Разработка игр