VC++内存泄漏检测方法(2):Checkpoint/DumpStatistics

MFC工程,全部在App中完成

1.在 App.h 头文件声明

#define MEMORY_STATE
#ifdef MEMORY_STATE
private:
	CMemoryState m_msOld;
	CMemoryState m_msNew;
	CMemoryState m_msDiff;
#endif  // MEMORY_STATE

2.在 App::InitInstance() 中添加如下代码:

#ifdef MEMORY_STATE
	m_msOld.Checkpoint();
#endif  // MEMORY_STATE

3.在 App::ExitInstance() 中添加如下代码:

#ifdef MEMORY_STATE
	m_msNew.Checkpoint();
	if (m_msDiff.Difference(m_msOld, m_msNew))
	{
		afxDump << "\n------------------ Memory Leaked : ------------------\n";
		m_msDiff.DumpStatistics();
		afxDump << "------------------Dump Complete !------------------\n\n";
	}
#endif

另外,除了_CrtSetBreakAlloc这方法之外,还可以使用Visual Leak Detector。详情见:

VC++内存泄漏检测方法(3):Visual Leak Detector(VLD内存泄漏检测工具)
 

发布了455 篇原创文章 · 获赞 535 · 访问量 324万+

猜你喜欢

转载自blog.csdn.net/libaineu2004/article/details/104074790
今日推荐