关于C++ EH异常---MFC CMemoryException

MFC里的CMemoryException异常就是表示内存不足的情况。不需要或不可能进一步限定。内存异常由new自动抛出。例如,如果您使用malloc编写自己的内存函数,那么您将负责抛出内存异常。 不要直接使用此构造函数,而是调用全局函数AfxThrowMemoryException。此全局函数在内存不足的情况下可以成功,因为它在先前分配的内存中构造异常对象。

当我们在dum文件分析时,可以看到如下的异常信息:

ExceptionAddress: 768c2552 (KERNELBASE!RaiseException+0x00000062)
ExceptionCode: e06d7363 (C++ EH exception)
ExceptionFlags: 00000001
NumberParameters: 3
Parameter0: 19930520
Parameter1: 0093cb58
Parameter2: 69d9bd10
pExceptionObject: 0093cb58
_s_ThrowInfo : 69d9bd10
Type : class CMemoryException *
Type : class CSimpleException *
Type : class CException *
Type : class CObject *
Type : void *

此时,我们可以用!address -summary来查看进程内存使用情况在佐证

posted on 2020-07-06 08:18  活着的虫子  阅读(2458)  评论(0编辑  收藏  举报

导航