\boot\kernel\lib\kconfig.debug
修改config debug_kmemleak_early_log_size中default 400為4000,因為400會洩漏,kernel呼叫log_early剛好401次,剛剛把400次耗光,導致log_early中滿足crt_early_log >= array_size(early_log)進而kmemleak_disable()。
config_debug_kmemleak=y
//改為y
#config_debug_kmemleak_default_off //注釋掉
如果要顯示所有可能記憶體洩漏的細節,需要掛載debugfs(mount debugfs):
# mount -t debugfs nodev /sys/kernel/debug
# cat /sys/kernel/debug/kmemleak
如果要立即觸發記憶體掃瞄,請使用以下命令:
# echo scan > /sys/kernel/debug/kmemleak
如果想清除當前記憶體洩漏列表,請使用以下命令:
# echo clear > /sys/kernel/debug/kmemleak
kmemleak在啟動時可以被disable(通過傳遞"kmemleak=0ff"給kernel command line)
如果想檢視ion leak檔案描述符,請使用以下命令:
cat /d/ion/check_leaked_fds
Visual Studio記憶體洩漏除錯
在可能洩漏的檔案頭部加入下面幾行 保證malloc和new的洩漏都可以檢測到 define crtdbg map alloc include ifdef debug 過載new運算子 define new new normal block,file line endif 然後在程式中加入下面 程式執...
Linux mtrace除錯記憶體洩漏
本文只介紹乙個實用的linux小命令 mtrace memory trace 它能夠用來協助定位記憶體洩露 linux下測試 4 trace.c include includeint main 編譯 gcc 4 trace.c o 4 trace g ddebug 因為我 中沒有debug巨集控制,...
C 記憶體洩漏的除錯
一 在程式 中加入 標頭檔案和巨集定義 define crtdbg map alloc include define new new normal block,file line 注意 include 語句的順序。如果更改此順序,所使用的函式可能無法正確工作。在析構函式最後一行呼叫 crtdumpm...