Windows Mobile內存泄漏檢測

本文主要講述windows mobile中檢測內存泄漏的方法,只能檢測用new/delete操作的內存。主要思想就是重載new運算符和delete運算符。主要步驟如下:

1、在new操作中記錄下此次內存分配的情況,比如:分配內存的文件名/行號、分配了多少字節等。在delete操作中把保存的相應的記錄刪除。經過這樣的操作以後,在需要的時候就可以把所有未釋放的內存的信息打印出來。

 

2、重載完newdelete運算符以後,在每個需要查找內存泄漏的文件中,加上如下定義:

#define new ::new(參數1,參數2….),就是定義一個宏,把分配內存的操作轉到我們自己的new函數中,注意:要把這個宏定義到所有包含文件操作的後面,因爲有些文件也會定義這種宏,比如MFC

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

這時候,我們的宏定義就需要定義到這一段的後面

 

3重載相應的局部new/delete運算符,比如MFCCObject類就重新定義了new/delete操作符,所以從CObject類繼承而來的類,則需要重載CObjectnew/delete操作符,把new/delete操作重新轉到我們自定義的函數中,不然會出newdelete不匹配的問題,就是會報告錯誤的內存泄漏。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章