detect memory leak macro

作者使用VC6.0进行软件调试时遇到问题,希望通过宏__UHEAP_FAILNEXT(1)等手段故意触发内存溢出错误来检测内存泄漏。但无论是否将分配的内存放入CleanupStack中,模拟器总是显示相同的内存不足提示,无法确定是否存在内存泄漏。

I cannot solve this problem yet. I'm using VC6.0 as debug tool. I know I can produce deliberate out-of memory errors by macro __UHEAP_FAILNEXT(1), or User::LeaveNoMemory(). But How can I know whether memory leak occured after the fail? I've written the following code:

__UHEAP_MARK;
TInt32 *aaa = new(ELeave) TInt32[100];
//CleanupStack::PushL(aaa);
__UHEAP_FAILNEXT(1);
TInt32 *bbb = new(ELeave) TInt32[100000];
__UHEAP_MARKEND;
__UHEAP_MARKENDC(2);

and I found no matter I push aaa into CleanupStack or not, the emulator just displays the same information:"The memory is not enough, please close some applications and try again." -- That is, I still cannot tell out whether aaa has been orphaned in the memory.
I think, since such deliberate out-of memory producer tools have been designed, they must be designed to be used together with memory leak detecting tools, isn't it?
How do you do test? Thank you very much!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值