參考其官網:
我是在ubuntu下安裝的,所以轉至這個網頁:
/systemtaponubuntu
參考網頁:
1.systemtap的安裝
systemtap的安裝是很簡單的,一條命令足以:
$sudo apt-get install systemtap
此時,你執行如下測試命令:
$sudo stap
-ve
'probe begin '
也是可以正確列印出hello world的,但是,注意到這個小指令碼中並不包含任何的與核心相關的跟蹤資訊,只是簡單的列印hello world,因此,現在並不能開始除錯核心,要對系統的環境進行配置。
2.環境配置
為什麼配置?配置什麼?
既然號稱除錯核心,那麼一定是要有符號表的,但是一般情況下你安裝的核心是不包含debug資訊的,因為這個太大了。所以,我們現在需要增加debug資訊,新增符號表等除錯過程中需要的資訊。有兩種方式:
(1)重新編譯核心,這次記得要在配置選項中增加debug選項。然後用新編譯的核心替換你現在的核心。注意,這兩個核心的版本要相同。(uname -r 就可以看到你用的哪個版本的核心了)
(2)按照官網的解決方法:
$sudo apt-get install linux-image-$(uname -r)-dbgsym.
$sudo dpkg -i
linux-image-3.2.0-26-generic-pae-dbgsym_3.2.0-26.41_i386.ddeb
這樣,就在你的現有核心的基礎上加入了除錯資訊。
但是現在還是不能夠跟蹤核心,按照官網的步驟,你還需要:
$sudo apt-get install elfutils
然後編輯shell指令碼config_elfutils,並且執行($sudo sh config_elfutils),現在你可以跟蹤核心資訊了。
for file in `find /usr/lib/debug -name '*.ko' -print`do buildid=`eu-readelf -n $file| grep build.id: | awk ''`
dir=`echo $buildid | cut -c1-2`
fn=`echo $buildid | cut -c3-`
mkdir -p /usr/lib/debug/.build-id/$dir
ln -s $file /usr/lib/debug/.build-id/$dir/$fn
ln -s $file /usr/lib/debug/.build-id/$dir/$.debug
done
systemtap除錯核心
systemtap是核心開發者必須要掌握的乙個工具,本文我將簡單介紹一下此工具,後續將會有系列文章介紹systemtap的用法。假如現在有這麼乙個需求 需要獲取正在執行的 linux 系統的資訊,如我想知道系統什麼時候發生系統呼叫,發生的是什麼系統呼叫等這些資訊,有什麼解決方案呢?下面將會介紹sys...
使用 SystemTap 除錯核心
systemtap 是一種新穎的 linux 核心診斷工具,提供了一種從執行中的 linux 核心快速和安全地獲取資訊的能力。systemtap 是核心開發人員和系統管理員的福音,因為這使得他們可以通過編寫或者重用簡單的指令碼來收集核心的實時資料,而不需要再忍受修改原始碼 編譯核心 重啟系統的漫長煎...
使用 SystemTap 除錯核心
systemtap 是一種新穎的 linux 核心診斷工具,提供了一種從執行中的 linux 核心快速和安全地獲取資訊的能力。systemtap 是核心開發人員和系統管理員的福音,因為這使得他們可以通過編寫或者重用簡單的指令碼來收集核心的實時資料,而不需要再忍受修改原始碼 編譯核心 重啟系統的漫長煎...