memwatch的使用(二)

2021-09-21 10:26:03 字數 1244 閱讀 4226

2.3

分析日誌檔案

日誌檔案memwatch.log中包含的資訊主要有以下幾點:

*

測試日期

*

狀態蒐集器

的資訊

*

使用

memwatch

的輸出函式或巨集(如trace等)的資訊。

*

memwatch

捕獲的錯誤資訊

*

記憶體使用的全域性資訊統計,包括四點:

1)分配了多少次記憶體 

2)最大記憶體使用量

3)分配的記憶體總量 

4)為釋放的記憶體總數

memwatch

捕獲的錯誤記錄在

日誌檔案中的輸出格式如下:

message: filename(linenumber), information

2.4 

注意事項

mwinit()

和mwterm()是對應的.所以使用了多少次mwinit(),就需要呼叫多少次

mwterm()

用於終止memwatch.

如果在流程中捕獲了程式的異常中斷,那麼需要呼叫mwabort()而不是

mwterm()

。即使有顯示的呼叫mwterm(),mwabort()也將終止memwatch。

memwatch

不能確保是執行緒安全的。

如果你碰巧使用wind32或者你使用了執行緒,作為2.66,是初步支援執行緒的。定義win32或者mw_pthreads以明確支援執行緒。這會導致乙個全域性互斥變數產生,同時當訪問全域性記憶體鏈時,

memwatch

會鎖定互斥變數,但這遠不能證明是執行緒安全的。

3 結論 從

memwatch

的使用可以得知,無法用於核心模組。因為memwatch自身就使用了應用層的介面,而不是核心介面。但是,對於普通的應用層程式,我認為還是比較有用,並且是開源的,可以自己修改**實現;它能方便地查詢記憶體洩漏,特別是提供的介面函式簡單易懂,學習掌握很容易,對應用層程式的單元測試會較適用。

使用memwatch跟蹤linux記憶體洩漏

參考 根據log可以查詢出申請了卻沒有釋放記憶體的行號。一 簡介 memwatch可以跟蹤程式中的記憶體洩漏和錯誤,能檢測雙重釋放 double free 錯誤釋放 erroneousfree 沒有釋放的記憶體 unfreed memory 溢位 overflow 下溢 underflow 等。解壓...

Moblin KVM的使用(二)

我們使用kvm作為moblin的開發環境的時候,碰到來乙個問題 即kvm模擬環境的大小,即虛擬大小是有效的,可能不滿足我們的需求,同時我們在上面的很多開發的 並不希望納入製作usbimg中,我們也不可能為了製作小容量的img而每次都將開發 移走,下面記錄我的處理過程。已有的raw檔案 rw r r ...

Handler的使用(二)

一 handler與執行緒 handler在預設情況下,實際上它和呼叫它的activity處於同乙個執行緒。例如在handler的使用 一 示例1當中,雖然宣告了執行緒物件,但是在實際呼叫當中它並沒有呼叫執行緒的start 方法,而是直接呼叫當前執行緒的run 方法。public class han...