问题
I can't seem to make VLD catch any memory leaks no matter what I tried. Any ideas why ?
Here snippet of the output too:
Visual Leak Detector Version 2.4RC2 installed.
The thread 0x5748 has exited with code 0 (0x0).
The thread 0x2c70 has exited with code 0 (0x0).
The thread 0x3c98 has exited with code 0 (0x0).
No memory leaks detected.
Visual Leak Detector is now exiting.
The program '[24988] ConsoleApplication2.exe' has exited with code 0 (0x0).
#include <vld.h>
#include <iostream>
using namespace std;
class Car{
public:
Car() {}
Car(string model,int year, string color) {
this->model = model; this->color, this->year = year;
}
string getModel() {
return this->model;
}
void setModel(string m) {
this->model = model;
}
string getColor() {
return this->color;
}
void setColor(string color) {
this->color = color;
}
void paint()
{
setColor("white");
}
private:
string model;
int year;
string color;
};
int _tmain(int argc, _TCHAR* argv[]){
Car c("bmw", 2000, "red");
c.paint();
cout << c.getColor().c_str();
for (int i = 0; i < 10; i++)
int *ptr = new int(10);
Car *c2 = new Car("benz", 2010, "yellow");
return 0;
}
What am I missing ?
回答1:
It's working under visual studio 2013 ultimate
You have to execute the program in a console mode (go to the debug directory of the project)
In the following, you will find a picture of the result, but the console displayed many leaks we can't see all of them here
I added the include and lib paths to the project setting
- C:\Program Files (x86)\Visual Leak Detector\include
- C:\Program Files (x86)\Visual Leak Detector\lib\win32
- C:\Program Files (x86)\Visual Leak Detector\lib\win64
As you see there is 13 memory leaks.
来源:https://stackoverflow.com/questions/33180597/visual-leak-detector-not-finding-leaks-vs2013