我想使用标准实用程序在我的应用程序中找到内存泄漏.以前我使用自己的内存分配器,但其他人(是的,你AlienFluid)建议使用微软的应用程序验证程序,但我似乎无法报告我的泄漏.我有以下简单的应用程序:
#include <iostream>
#include <conio.h>
class X
{
public:
X::X() : m_value(123) {}
private:
int m_value;
};
void main()
{
X *p1 = 0;
X *p2 = 0;
X *p3 = 0;
p1 = new X();
p2 = new X();
p3 = new X();
delete p1;
delete p3;
}
Run Code Online (Sandbox Code Playgroud)
此测试显然包含内存泄漏:p2是新的但未删除.
我使用以下命令行构建可执行文件:
cl /c /EHsc /Zi /Od /MDd test.cpp
link /debug test.obj
Run Code Online (Sandbox Code Playgroud)
我下载了Application Verifier(4.0.0665)并启用了所有检查.
如果我现在运行我的测试应用程序,我可以在Application Verifier中看到它的日志,但我没有看到内存泄漏.
问题:
如果我找不到合适的实用程序,我仍然需要依靠自己的内存管理器(完美地完成它).