当前位置:首页 > 工业控制 > 电子设计自动化
[导读]在MFC开发环境中,当运行退出了,Visual Studio会在输出窗口提示是否有内存泄漏。也可以借助MFC类CMemoryState动态地检测并输出内存泄漏信息。 在非MFC框架中,需要借助CRT函数实现这些功能。 1. 调用_CrtDumpMemory

在MFC开发环境中,当运行退出了,Visual Studio会在输出窗口提示是否有内存泄漏。也可以借助MFC类CMemoryState动态地检测并输出内存泄漏信息。

在非MFC框架中,需要借助CRT函数实现这些功能。

1. 调用_CrtDumpMemoryLeaks()函数会在输出窗口中输出当前的内存泄漏。若在程序开始处加上:_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );

语句,CRT会在程序的每个出口处自动调用_CrtDumpMemoryLeaks函数,因此程序终止时会在输出窗口显示所有的内存泄漏。

2.利用_CrtMemState结构定点监测内存泄漏,例:

//定义3个内存状态

_CrtMemState s1,s2,s3;

//记录开始的内存状态

_CrtMemCheckpoint( &s1 );

int *p = new int;

//记录结束时的内存状态

_CrtMemCheckpoint( &s2 );

//比较2个内存状态,并将差异保存到s3中

if( _CrtMemDifference( &s3, &s1, &s2 ) )

{

//输出内存泄漏信息

_CrtMemDumpAllObjectsSince( &s3 );

}

3. 重定向输出信息。内存泄漏提示默认是输出在输出窗口中,可以通过_CrtSetReportMode重定向其输出位置。例(重定向输出到指定文件):

CAtlFile hFile;

hFile.Create( _T("D:\report.txt"), GENERIC_WRITE, FILE_SHARE_WRITE, CREATE_ALWAYS );

_CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_FILE );

_CrtSetReportFile( _CRT_WARN, hFile );

此外还可以重定向为窗体提示(带有"终止"、"继续"、"忽略"按钮的窗体),断言就是输出为此窗体。还可以通过_CrtSetReportHook函数在输出到指定目的地之前拦截消息。如:

_CrtSetReportHook( MyReportingFunction );

MyReportingFunction 的定义如下:

int MyReportingFunction( int nReportType, char *szMsg, int *pRetVal )

{

*pRetVal = 0;

if( nReportType == _CRT_WARN )

{

AtlMessageBox( NULL, _U_STRINGorID( CA2T(szMsg)));

}

return 0;

}



来源:香香公主0次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

根据IDC预测,中国在人工智能领域的投资预计到2027年将达到381亿美元,占全球总投资的近9%。作为全球人工智能的重要参与者,中国正加速在汽车、通信、医疗、金融等多个行业应用和发展生成式AI技术,全面迈入“AI 2.0...

关键字: AI 内存 DDR5

8月17日消息,近日,超频爱好者“saltycroissant”成功将海盗船(CORSAIR)DDR5内存超频至12886MT/s,创造了新的世界纪录。

关键字: 内存 DDR5

在高性能服务架构设计中,缓存是不可或缺的环节。在实际项目中,我们通常会将一些热点数据存储在Redis或Memcached等缓存中间件中,只有在缓存访问未命中时才查询数据库。

关键字: 缓存 内存

7月25日消息,由于供应短缺,最近一段时间DDR4内存频繁出现涨价、缺货等现象。

关键字: DDR4 内存

7月10日消息,JEDEC今天正式发布了LPDDR6内存标准,规范编号JESD209-6,可显著提升移动设备、AI应用的性能、能效、安全。

关键字: LPDDR6 内存

7月6日消息,由于供应短缺,DDR4内存价格在过去几个月内大幅上涨,甚至超过了DDR5内存,这一现象促使一些厂商重新考虑延长DDR4内存的生产。

关键字: DDR4 内存

上海 2025年6月23日 /美通社/ -- 近期,黑芝麻智能分享了其如何通过零拷贝共享内存技术,解决车载多域间大数据传输的延迟与资源消耗问题。核心技术包括全局内存管理单元和dmabuf机制优化,显著降低CPU负载与D...

关键字: 内存 数据传输 大数据 BUF

6月16日消息,“至少十年没看过现货价单日涨幅这么大”,一位从业者表示。

关键字: DDR4 内存

基于美光 LPDDR5X 内存和 UFS 4.0 存储解决方案,合力打造 Motorola 功能强大的翻盖手机

关键字: LPDDR5X 内存 AI

AIPC作为新兴且高速增长的应用领域,对内存性能的推动作用十分显著。一方面,它直接驱动了内存技术规格的更新换代和高带宽、低延迟的内存架构的发展;另一方面,也间接推动了内存模块的电源管理技术、信号完整性控制和可靠性设计的全...

关键字: AIPC 内存 LPCAMM Rambus PMIC PMIC5200 PMIC5120
关闭