问题描述
|
谁能推荐适用于Windows的高质量C ++内存调试API或软件(特别是与MinGW兼容的API)?我几乎肯定我的程序中存在内存泄漏,但是我不知道从哪里开始寻找。
另外,在相关说明中,我以前曾尝试自己重载global new和delete运算符,并从那里存储调试信息。但是,当我尝试用重载的运算符替换每次出现的new时,都会引发很多错误。我只尝试使用一个简单的预处理器宏来执行此操作。
#define new new(__FILE__,__LINE__)
有没有解决这个问题的独特方法?
编辑:我可能应该对此更加清楚。实际上,我确实声明了一个重载,并实现了它而没有任何错误。唯一的问题是,当我尝试使用宏替换新操作符的所有使用以代替使用重载时,这就是为什么我只发布了宏代码。
解决方法
对于Windows中的内存泄漏,我发现启用了用户模式堆栈跟踪的UMDH非常有用。这是一个教程。
有关其他工具的列表,请参见此处。