安装
# centos
yum install systemtap
stap --version
第一个程序
#!/usr/bin/stap
### hello.stp ###
probe begin {
log("hello stap")
exit()
}
stap ./hello.stp
一个socket监控例子
#!/usr/bin/stap
### socket_stace.stp ###
probe kernel.function("*@net/socket.c").call {
printf ("%s -> %s\n", thread_indent(1), ppfunc())
}
probe kernel.function("*@net/socket.c").return {
printf ("%s <- %s\n", thread_indent(-1), ppfunc())
}
stap ./socket_stace.stp
安装kernel-debuginfo
如果报错semantic error: missing x86_64 kernel/module debuginfo [man warning::debuginfo]
就需要安装kernel-debuginfo
- 先查看centos版本
cat /etc/redhat-release
or
lsb_release -a
or
rqm -q centos-release
- 再查看内核版本
uname -r
- 去http://debuginfo.centos.org/下载
cd ~/Download
wget http://debuginfo.centos.org/8/x86_64/Packages/kernel-debuginfo-4.18.0-240.22.1.el8_3.x86_64.rpm &\
wget http://debuginfo.centos.org/8/x86_64/Packages/kernel-debuginfo-common-x86_64-4.18.0-240.22.1.el8_3.x86_64.rpm
或者
cd ~/Download
CVers=`cat /etc/redhat-release` && CVers=${CVers##* } && CVers=${CVers%%.*}
KVers=`uname -r`
wget 'http://debuginfo.centos.org/${CVers}/x86_64/Packages/kernel-debuginfo-${KVers}.rpm'
wget 'http://debuginfo.centos.org/${CVers}/x86_64/Packages/kernel-debuginfo-common-x86_64-${KVers}.rpm'
- 安装
rpm -ivh kernel-debuginfo-common-x86_64-4.18.0-240.22.1.el8_3.x86_64.rpm
rpm -ivh kernel-debuginfo-4.18.0-240.22.1.el8_3.x86_64.rpm