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

MFC工程,全部在App中完成1.在 App.h 头文件声明#define MEMORY_STATE#ifdef MEMORY_STATEprivate:CMemoryState m_msOld;CMemoryState m_msNew;CMemoryState m_msDiff;#endif // MEMORY_STATE2.在 App::InitIn...

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内存泄漏检测工具)
 

  • 点赞
  • 收藏
  • 分享
    • 文章举报
libaineu2004 发布了455 篇原创文章 · 获赞 535 · 访问量 324万+ 他的留言板 关注

本文标题为:VC++内存泄漏检测方法(2):Checkpoint/DumpStatistics

基础教程推荐