1. 程式人生 > >自定義記憶體檢測原理及方案

自定義記憶體檢測原理及方案

在專案開發中,或多或少都會遇到一些記憶體洩露的問題,今天就來總結下檢測記憶體洩露的原理及其方法 1 將使用的系統的動態申請/釋放記憶體的函式重新過載實現一遍,如new、delete、malloc、free等等 2 建立一個連結串列來儲存申請/釋放資訊. 3 在需要動態申請記憶體時使用自己過載後的申請函式。申請函式中記錄下申請的地址,  記憶體大小,然後和一些關鍵屬性,如檔名、函式名、函式、行號等等組成一個列表節點   然後,存入連結串列中(連結串列推薦使用雜湊表) 4 在需要釋放記憶體時使用自己過載後的釋放函式,根據需要釋放的記憶體地址為key,找到連結串列中的元素節點從連結串列中刪除。 5 當系統退出時,如果連結串列中還有元素,則說明程式存在記憶體洩露.此時列印每個元素對應出來的屬性  (檔名、函式名、函式、行號)等等來定位記憶體洩露的地方,然後分析程式碼在合適的地方釋放記憶體即可。      以上就是總結的記憶體檢測方法!