【SystemTap】SystemTap的疑问

来源:互联网 发布:沙发床 知乎 编辑:程序博客网 时间:2024/05/23 00:00

 2012-2-22  最新安装步骤参考 http://blog.csdn.net/zklth/article/details/7281958

SystemTap的官方教程中一直推荐安装时需要给内核安装上相应版本的 debuginfo 包,但是对于centos默认安装的SystemTap,我仍能正常使用一些探针。

此外,我在一个已经安装好debuginfo包的机器上升级内核后,SystemTap仍能正常使用(升级后的内核没有安装 debuginfo 包), 不知道是怎么回事。

 

2012/2/21 更新,上述说法是错误的。

安装 systemtap 时正确顺序是首先升级内核,然后安装相同版本号的 debuginfo-common、debuginfo、kernel-devel 包,例如:

 rpm -ivh kernel-2.6.18-194.8.1.el5.x86_64.rpm
 rpm -ivh kernel-debuginfo-common-2.6.18-194.8.1.el5.x86_64.rpm
 rpm -ivh kernel-debuginfo-2.6.18-194.8.1.el5.x86_64.rpm
 rpm -ivh kernel-devel-2.6.18-194.8.1.el5.x86_64.rpm  安装了次包过后才会有 /usr/src/kernels/2.6.18-194.8.1.el5-x86_64
 rpm -ivh kernel-headers-2.6.18-194.8.1.el5.x86_64.rpm

否则,执行脚本时将会出现 “missing x86_64 kernel/module debuginfo under '/lib/modules/`uname -r`/build'” 错误,而'/lib/modules/`uname -r`/build'”是一个链接,指向内核源码目录/usr/src/kernels/`uname -r`,。


我在内核升级到 Linux 2.6.34.7 时,不需要安装相应版本的 kernel-devel,systemtap脚本就能正确执行,这是因为在源码目录中已将包含了 systemtap 执行时所需要的相关模块。

原创粉丝点击