1) До подключения первого хедера пишем:
#define _CRTDBG_MAP_ALLOC
#include
#include
#ifndef DBG_NEW
#define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )
#define new DBG_NEW
#endif
Тут мы подключаем необходимое, а именно замену для стандартного malloc и компании, которые будут вести учет выделений и освобождений памяти.
2) Первой инструкцией программы ставим:
_CrtSetDbgFlag (_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF | _CRTDBG_CHECK_ALWAYS_DF);
Это задает параметры работы профилировщика памяти. параметров там куча, поэтому читаем их сами.
3) запускаем. После закрытия программы в окне Visual Studio "Output" будет выведено примерно следующее:
Programm.cpp(2532) : {29721} normal block at 0x00000000040812E0, 193168 bytes long.Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Programm.cpp(1713) : {29714} normal block at 0x0000000003F06460, 48292 bytes long.
Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Это имя файла, строка, адрес и прочее. при двойном клике по строке студия сама переключится на это место.
Комментариев нет:
Отправить комментарий