我的程序最终会消耗所有内存并崩溃...查看代码,我找不到任何可以做到这一点的突出内容。
问问题
412 次
3 回答
1
您可以修改代码以使用和的调试版本malloc
吗free
?如果是,请检查_malloc_dbg和_free_dbg。
(您可以根据这些函数编写自己的new
和运算符。)delete
我记得 VS 6.0 没有_realloc_dbg
.
#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC 1
#include <Crtdbg.h>
#define malloc(size) _malloc_dbg(size,_CLIENT_BLOCK,__FILE__,__LINE__)
#define free(addr) _free_dbg(addr,_CLIENT_BLOCK)
#endif
于 2012-05-16T20:10:10.137 回答
1
您可以尝试 BoundsChecker(现为 DevPartner): http: //www.microfocus.com/products/micro-focus-developer/devpartner/index.aspx
您将能够在代码中看到内存泄漏、接口泄漏和其他问题。
于 2012-05-16T20:20:58.493 回答
1
根据泄漏的类型,您可以使用 umdh 或 debugdiag 作为简单工具,否则我会推荐使用 windbg。所有这些都是免费的,并且是 Windows 调试工具的一部分,您可以谷歌搜索所有这些工具的教程。在 windbg 中自动查找泄漏的命令是 !heap -l。
于 2012-05-16T20:54:53.453 回答