C 程式記憶體洩漏檢查

2021-06-22 19:14:39 字數 819 閱讀 3497

一、在windows平台上面:

以前我都是用purify,因為沒有正版的,很是麻煩,後來我開始用windows自帶的umdh,也很好用:

摘要一下步驟如下:

注:得先把gflags和umdh的路徑加入到path中,預設為:c:\program files (x86)\windows kits\8.1\debuggers\x64(我用的是win64的系統,x86的自己改下)。

2、啟動需要檢查的程式,並獲得其程序號(假設為124);

3、獲取heap dump:

umdh -p:124 -f:heapdump_1.log

跑了一段時間之後,再dump一次:

umdh -p:124 -f:heapdump_2.log

4、比較兩次生成的dump:

umdh heapdump_1.log heapdump_2.log > cmp12.txt

然後檢查cmp12.txt即可。檢查該檔案需要對程式的了解和一些檢查記憶體洩漏的經驗。有的時候會有誤報,總的來說抓大放小,檢查那些持續性的洩漏,而不是類似於static物件的一次性的洩漏。這些原則同樣適用於valgrind。

二、在linux平台上面:

用valgrind: 

這是個相當好的工具。linux平台開發真是相當的方便呢。

valgrind --track-origins=yes --leak-check=full --log-file=valgrind.log --error-limit=no -v &

記憶體洩漏檢查

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

記憶體洩漏檢查

關於記憶體洩漏的檢查網上有很多的例子和 其基本的方法都是用巨集,替換掉記憶體分配以及釋放的函式。但是現在網上很多的例子中沒有乙個是適合我們公司的需求的。具體的對記憶體洩漏檢查有如下要求 1.記憶體洩漏檢查的 盡可能少的占用cpu及記憶體 2.盡可能的不影響原程式 因為,我們的伺服器程式有洩漏而且是特...

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

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