- $ sudo apt-get install systemtap
2. 由于ubuntu 桌面版默认没有安装kernel-debug-info,所以安装了systemtap后仍然不能够追踪内核信息,因此需要手动安装kernel-debug-info包。
(1)查看当前内核版本
$ uname -ar这里下载linux-image-3.0.0-15-generic-dbgsym_3.0.0-15.24_i386.ddeb。
3. 安装linux-image-3.0.0-15-generic-dbgsym_3.0.0-15.24_i386.ddeb
- $sudo dpkg -i linux-image-3.0.0-15-generic-dbgsym_3.0.0-15.24_i386.ddeb
/usr/lib/debug目录下以.ko.dedug结尾的模块,但是linux发行版通常将linux模块的扩展名修改为.ko。
4. 安装elfutils并进行相应配置
$sudo apt-get install elfutils
- for file in `find /usr/lib/debug -name '*.ko' -print`
-
do
-
buildid=`eu-readelf -n $file| grep Build.ID: | awk '{print $3}'`
-
dir=`echo $buildid | cut -c1-2`
-
fn=`echo $buildid | cut -c3-`
-
rm -fr /usr/lib/debug/.build-id
-
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/${fn}.debug
- done
5. 写个例子测试下
- sudo stap -ve 'probe begin { log("hello world") exit() }'