任何人都可以推荐一个高质量的C++内存调试API或Windows软件(特别是与MinGW一起工作的)吗?我几乎肯定了我的程序中有内存泄漏,但我不知道从哪里开始寻找。C++内存调试器?
另外,在一个相关的说明中,我以前尝试重载全局的new和delete操作符,并从那里存储调试信息。然而,当我尝试用我的重载操作符替换每一个新的事件时,它会抛出一堆错误。我只尝试使用一个简单的预处理宏来做到这一点。
#define new new(__FILE__, __LINE__)
围绕这个问题有没有独特的解决方法?
编辑:我可能应该更清楚这一点。事实上我确实声明了一个重载,并且没有任何错误地实现它。唯一的问题是,当我尝试使用宏替换所有使用新运算符来使用我的重载时,这就是为什么我只发布宏代码。
当然你的宏会引发错误。 [操作员新](http://www.cplusplus.com/reference/std/new/operator%20new/)没有重载,它接受这些参数。定义一个宏不只是为你创建一个适用的函数。 – 2011-06-12 01:20:28
我不想听起来居高临下,但宏开辟了一个愚蠢的错误的方式:是你的'新'定义*之前*宏出现?为什么不完全忽略它,并定义全局'new'(没有参数的那个),进行日志记录并从例如'operator new'? – 2011-06-12 01:21:31
@Luc,不。我确保在宏之前添加我的超载声明。尽管如此,我可能会尝试将正常的全球超载。 – B3tturTh3nU 2011-06-12 01:28:09