當前位置:首頁 » 操作系統 » linux內存泄露檢測工具

linux內存泄露檢測工具

發布時間: 2023-07-20 12:52:04

『壹』 linux Kernel模塊內存泄露分析

假如通過「Free」查看內存幾乎耗盡,但通過 top/ps 命令卻看不出來用戶態應用凳凱程序佔用太多的內存空間, 那麼內核模塊可能發生了內存泄露

SLAB 是Linux內核中按照對象大小進行分配的內存分配器。

通過SLAB的信息好讓來查看內核模塊佔用的內存空間:

方法1. 查看meminfo文件

方法2. 查看slabinfo文件

一般查看slabinfo文件就足以,如果發現slabinfo中佔用內存過大,那基本可以斷定,內核模塊出現了內存泄露了
還有個命令 slabinfo 也是可以看,其實也是去讀 /proc/slabinfo 後可視化出來

Linux內核的Kmemleak實現內存泄露檢測

看看下面這個函數是哪裡導致的內存泄漏呢?

一眼可能不容易看出上面的有什麼問題,有kmalloc,有kfree 成對出現的。

問題正好出在 pr_debug 這個函數中的參數傳遞, 熟悉函數調用傳參的人應該會知道編譯器一般對參數的處理採用堆棧的方式,是一個先進後出的過程,這樣參數的執行一般是逆序的(由於編譯器實現的不同,這個過程不棗襪喚是確定的),這樣kfree會在kmalloc之前運行,導致每次運行都會泄漏一點內存。

Resolving Memory Leaks In Linux Kernel

Slab Allocator

Proc Info

Using Crash Debugger

『貳』 linux內存泄漏怎麼查

可以使用對應的軟體測試工具來查,如parasoft的c/c++等

『叄』 Linux系統中怎麼使用valgrind檢查內存

valgrind主要用於檢測程序內存使用異常,例如使用未初始化內存,重復釋放內存,堆棧非法訪問,申請空間未釋放等。
使用示例(檢測內存泄露): valgrind --leak-check=full --show-reachable=yes --show-leak-kinds=all 程序名
更多使用方法可以參見help信息

熱點內容
安卓主板哪裡有賣 發布:2025-03-15 19:26:10 瀏覽:29
Q9源碼 發布:2025-03-15 19:24:21 瀏覽:175
芬蘭編程教育 發布:2025-03-15 18:59:46 瀏覽:426
網際網路的伺服器地址 發布:2025-03-15 18:53:01 瀏覽:892
手機實體店什麼配置好 發布:2025-03-15 18:32:35 瀏覽:168
攜帶型電腦的原始密碼是什麼 發布:2025-03-15 18:25:52 瀏覽:798
壓縮空間小 發布:2025-03-15 18:14:05 瀏覽:848
env的腳本 發布:2025-03-15 18:01:24 瀏覽:730
圖片上傳雲端 發布:2025-03-15 17:37:26 瀏覽:460
郵件伺服器ip池 發布:2025-03-15 17:31:51 瀏覽:398