以 RHEL6u3 为例
1 Systemtap 安装
yum install systemtap
跟systemtap有关的有6,7个,全装上,别偷懒
就用yum安装,别傻傻的去下rpm包,吃力不讨好
2 kernel debuginfo包安装
这一点RHEL6 跟 RHEL5不同, redhat没有提供 kernel debuginfo 包的ftp下载(也可能是我没有找到),
估计可能是要收钱了,网上大部分都是centos或者其他源码编译的(rpm -qi xxx.rpm 的Vendor字段)
用 http://rpm.pbone.net/ 搜
rpm -ivh kernel-debuginfo-2.6.32-279.el6.x86_64.rpm
rpm -ivh kernel-debuginfo-common-x86_64-2.6.32-279.el6.x86_64.rpm
3 小修改
由于Vendor不是正牌的Red Hat, Inc, 因此Systemtap校验的时候会报错 "Build-id mismatch kernel vs vmlinux ...”
修改 /usr/share/systemtap/runtime/sym.c 第269行
if (rc || (theory != practice)) { ==> if (rc || 0 /*(theory != practice)*/) {
4 验证
stap -e 'probe begin {printf("hello\n");exit()}'
打印hello
5 补充
因为第3步中强行注释了build-id验证,因此不保证所有的stp脚本一定百分百OK,毕竟centos只是根据源码编译,
跟redhat自家出的还是不一样