當前位置:首頁 » 操作系統 » 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 20:36:56 瀏覽:254
公司自己搭建ftp 發布:2025-03-15 20:36:07 瀏覽:61
如何增加配置使半袖變得不單調 發布:2025-03-15 20:33:37 瀏覽:348
linux顯示目錄 發布:2025-03-15 20:30:42 瀏覽:660
素數演算法表示 發布:2025-03-15 20:24:02 瀏覽:842
大話西遊手游怎麼看伺服器等級 發布:2025-03-15 20:21:53 瀏覽:221
rsa加密c源代碼 發布:2025-03-15 19:53:55 瀏覽:693
linux解壓bin 發布:2025-03-15 19:40:25 瀏覽:384
存儲數據為什麼只能使用兩種狀態 發布:2025-03-15 19:40:21 瀏覽:264
平方的運演算法則 發布:2025-03-15 19:38:57 瀏覽:971