debian體系,本人測試用機 ubuntu 11.10
uname -r 檢視原本的核心版本為 3.0.0-12-generic
第一步:
安裝systemtap包
$ sudo apt-get install systemtap$ sudo apt-get install systemtap-sdt-dev
測試
stap -e 'probe kernel.function("sys_open") '
不能正確輸出hello world
semantic error: libdwfl failure (missing x86_64 kernel/module debuginfo under'/lib/modules/3.0.0-12-generic/build'): no such file or directory while resolving probe point
kernel.function("sys_open")
semantic error: no probes found
pass 2: analysis failed. try again with another '--vp 01' option.
報告錯誤大致意思為找不到核心debuginfo 資訊
解決辦法:
1.安裝帶debuginfo的核心
#安裝編譯核心所需要的對應的依賴關係包$ sudo apt-get build-dep --no-install-recommends linux-image-$(uname -r)
$ apt-get source linux-image-$(uname -r)
$ cd linux-3.0.0
$ debian/rules clean
#開始編譯核心,skipdbg為false編譯不跳過帶debuginfo的選項
$ autobuild=1 fakeroot debian/rules binary-generic skipdbg=false
#安裝3.0.0-32版本的核心
$ sudo dpkg -i ../linux-image-3.0.0-32-generic-dbgsym_3.0.0-32.51_i386.ddeb
筆者最初的核心版本為3.0.0-12-generic,編譯帶debuginfo的核心安裝後對應公升級到 3.0.0-32-generic
2.安裝linux-headers
sudo apt-get install linux-headers-`uname -r`
3.重啟機器
stap -e 'probe kernel.function("sys_open") '
正確輸出hello world表示安裝成功
Android和WebOS上使用debian
android和webos都是基於linux開發的移動作業系統,說基於linux的話linus聽了肯定皺眉頭,因為其實核心就是linux,改動基本都限於驅動和外圍gnu工具的選擇。所以在上述兩個平台上利用chroot建立常見linux發行版的環境就顯得順理成章。andorid 電子市場 google...
systemtap除錯核心
systemtap是核心開發者必須要掌握的乙個工具,本文我將簡單介紹一下此工具,後續將會有系列文章介紹systemtap的用法。假如現在有這麼乙個需求 需要獲取正在執行的 linux 系統的資訊,如我想知道系統什麼時候發生系統呼叫,發生的是什麼系統呼叫等這些資訊,有什麼解決方案呢?下面將會介紹sys...
systemtap 安裝試用
1.安裝 yum install y systemtap systemtap runtime 2.環境準備 a.自動安裝依賴 stap prep b.手動安裝依賴 kernel debuginfo kernel debuginfo common kernel devel 簡單的方式使用yum ins...