記憶體洩漏檢查

2022-03-01 19:37:15 字數 3223 閱讀 4266

關於記憶體洩漏的檢查網上有很多的例子和**,其基本的方法都是用巨集,替換掉記憶體分配以及釋放的函式。但是現在網上很多的例子中沒有乙個是適合我們公司的需求的。

具體的對記憶體洩漏檢查有如下要求:

1. 記憶體洩漏檢查的**盡可能少的占用cpu及記憶體

2. 盡可能的不影響原程式

因為,我們的伺服器程式有洩漏而且是特殊情況下會洩漏,平時很難模擬出來。

對於這種情況下的記憶體洩漏我以前的做法如下:

1.  用寫檔案的方法記錄所有的記憶體分配以及釋放的操作

2.  再寫乙個工具去分析所有的記錄,從中找出洩漏的**

這樣做需要大量的硬碟空間,不過,這個無所謂了現在硬碟很便宜!

不過需要考慮到伺服器程式當中包含了exe以及多個dll,為了通用,記憶體洩漏檢查分為下面幾個部分:

1. imemleak.h imemleak.cpp  加入每乙個模組當中

2. memleaklog.dll  統一記錄所有的記憶體操作,將其記錄到檔案當中

3. memchecktool.exe  分析工具

注意:a. 輸出的目錄我是寫死了,在d:\memleak_log

b. 在被檢查工程裡面請增加/fc選項。project->properties->configuration->c/c++->advanced->use full path yes(/fc)

c. memleaklog.dll 拷貝到與被檢查記憶體洩漏的程序所在的目錄下面

記憶體洩漏檢查

1.乙個指標多次進行賦值時,每次賦值後使用完後要釋放記憶體 coffsetcoedgemap poffsetcoedgemap polygonoffset ppoly,retpolygon,doffsetdis,enextend,0.1 expect true g ovldmgr.isvalid r...

SPDisposeCheck記憶體洩漏檢查工具的使用

spdisposecheck是開發sharepoint專案必不可少的工具之一,用它可以檢測出我們寫的 是否正確銷毀掉諸如spsite或者spweb之類的 資源消耗大戶 你開啟乙個spsite或者spweb物件 將占用1m到2m的記憶體,如果你不斷開啟此類物件並沒有及時關閉,那麼你的記憶體就會很快被消...

記憶體洩漏檢查的常識

幫助除錯記憶體錯誤的方法一 對已經分配或者釋放的記憶體寫入確定的位元組作為標識,以幫助暴露程式中的錯誤 0xcd 已經分配的資料 allocated data 0xdd 已經釋放的資料 deleted data 0xfd 被保護的資料 fence data 其中保護位元組被寫入在被保護記憶體區域的開...