Я немного новичок в использовании Visual Studio 2013 и пытаюсь заставить работать Visual Leak Detector (Версия 2.3), чтобы я мог проверить свои проекты на утечки памяти.
Я установил его и добавил
C: \ Program Files (x86) \ Visual Leak Detector \ include для моих каталогов включения
и C: \ Program Files (x86) \ Visual Leak Detector \ lib \ Win32 в каталогах моей библиотеки (обе для режима отладки).
Я строю и запускаю следующую простую программу, используя меню отладки (или нажимая клавишу f5):
#include <iostream>
#include <vld.h> //visual leak detector
using namespace std;
int main()
{
for (int i = 0; i < 1000000; i++)
int *ptr = new int(100);
return 0;
}
Утечка очевидна (и намерена) здесь, чтобы проверить функциональность, но вот отчет, который я получаю:
Visual Leak Detector Version 2.3 installed.
The thread 0x38ac has exited with code 0 (0x0).
No memory leaks detected.
Visual Leak Detector is now exiting.
The program '[8136] Test.exe' has exited with code 0 (0x0).
Есть идеи?
Изменить: я должен отметить, что добавление
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
К началу моего кода и
_CrtDumpMemoryLeaks();
непосредственно перед завершением функции main () фактически вызывает то, что встроенное в Visual Studio средство обнаружения утечек сообщает об утечках, однако визуальный детектор утечек все еще следует этому отчету, говоря, что утечки памяти не обнаружены и не предоставляя никакой информации.
Похоже, что это ошибка в VC ++ 2013, она работает, когда я использую компилятор VC ++ 2010.
Хотя я могу представить, что это не вариант для вас. Если это поможет вам, вы можете использовать последнюю бета-версию v2.4rc2.
Других решений пока нет …