2

我的程序最终会消耗所有内存并崩溃...查看代码,我找不到任何可以做到这一点的突出内容。

4

3 回答 3

1

您可以修改代码以使用和的调试版本mallocfree?如果是,请检查_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 回答