歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux 內核內存檢測工具 - Kmemcheck

Linux 內核內存檢測工具 - Kmemcheck

日期:2017/2/28 16:41:30   编辑:Linux教程
本文是 Linux 內核內存檢測工具系列中的一篇,主要分析了 Kmemcheck 的原理,配置以及它的典型應用。讀者在閱讀完本文之後,能輕松地學會怎樣利用 Kmemcheck 來對內核程序進行檢測,同時也能從 Kmemcheck 的設計原理中得到一些啟發。

Linux 內核內存檢測工具 - Kmemcheck

本文是 Linux 內核內存檢測工具系列中的一篇,主要分析了 Kmemcheck 的原理,配置以及它的典型應用。讀者在閱讀完本文之後,能輕松地學會怎樣利用 Kmemcheck 來對內核程序進行檢測,同時也能從 Kmemcheck 的設計原理中得到一些啟發。

前言

訪問非法的內存地址(如訪問未初始化的內存,訪問已經釋放的內存)是一件很危險的事情,如果在內核程序中使用了非法內存中的內容,可能會導致系統崩潰,如何發現並消滅這些潛在的風險,是在編寫程序時都必須考慮的問題。在 Linux 系統中,gcc 會在編譯的時候對內存未初始化的情況發出警告,但是它只能做一些靜態的檢查;另外如果系統安裝了 Valgrind,也可以利用其提供的 memcheck 來動態地對內存進行檢查,但是它只能檢查出一些用戶態程序的問題,對工作在內核態的程序無能為力。因此,從事內核開發(如設備驅動程序)工作的時候,我們迫切需要一個能為內核程序提供動態內存檢查的工具,所幸的是,在 Linux 2.6.31 的內核版本中,它提供了一個這樣的內存檢測功能 - Kmemcheck, 目前該功能只支持 x86 平台。

Copyright © Linux教程網 All Rights Reserved