關於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來查看進程內存使用情況在佐證


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM