Linux 記憶體洩露檢測

2021-05-27 14:57:44 字數 478 閱讀 5711

1. 需要在記憶體洩露開始的開始呼叫void mtrace(void),mtrace 為malloc等函式安裝 hook,用於記錄記憶體分配資訊,在需要記憶體洩露檢查**結束的地方呼叫void muntrace(void). 注意:在一般情況下,不要呼叫muntrace(), 而讓程式自然結束。因為可能有些記憶體釋放**要到muntrace之後才會執行。

2. 用debug模式編譯**

3. 設定環境變數malloc_trace為一檔名,這一檔案將存有記憶體分配資訊

export malloc_trace=mem_trace.log

4. 執行被檢查程式

5. 用mtrace檢查記憶體分配log檔案($malloc_trace)

例如:如果log檔名為mem_trace,則執行

mtrace mem_trace mem_trace.log

進行測試

linux檢測記憶體洩露

關於記憶體洩露 客戶的一台ap server,記憶體使用量一直很大,swap使用量從三月份開始在慢慢增多。懷疑與記憶體洩露有關,查詢了一些資料,發現對於linux真個系統的記憶體洩露檢測工具很少。有如下幾個,但是都只針對單個程式。如果測試真個記憶體的情況,特別是歷史記錄,不知道還有沒有好的工具。va...

linux下記憶體洩露檢測

前段時間遇到一些關於記憶體方面的問題,使用了malloc stats來進行記憶體檢測。呼叫函式後,函式會把輸出定向到strerr中,內容如下,arena 0 第乙個arena 每個執行緒分配乙個arena 這裡只有乙個執行緒 system bytes 135168 本執行緒從作業系統獲得的動態記憶體...

linux 記憶體洩露檢測 mtrace

mtrace include include int main 加上標頭檔案 include 然後在main 函式的開頭加上 mtrace 在main函式返回前加上 muntrace malloc trace home stevewong mtrace mt.log export malloc tr...