centos 7 systemtap 安装

1,安装systemtap和kernel-devel包

yum install systemtap kernel-devel

2,查看自己的内核版本

uname -rm

3.10.0-123.20.1.el7.x86_64 x86_64

从http://debuginfo.centos.org/依次下载并安装kernel-debuginfo-common和kernel-debuginfo两个包。

一定要注意自己的内核版本。安装相应的内核调试信息包。笔者的内核版本下载的两个包为
kernel-debuginfo-common-x86_64-3.10.0-123.20.1.el7.x86_64.rpm
kernel-debuginfo-3.10.0-123.20.1.el7.x86_64.rpm

wget http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-common-x86_64-3.10.0-123.20.1.el7.x86_64.rpm

wget http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-3.10.0-123.20.1.el7.x86_64.rpm

rpm -ivh kernel-debuginfo-common-x86_64-3.10.0-123.20.1.el7.x86_64.rpm

rpm -ivh kernel-debuginfo-3.10.0-123.20.1.el7.x86_64.rpm

3,验证
执行如下指令

stap -v -e 'probe vfs.read {printf("read performed\n"); exit()}'

如果调试信息包版本不对,验证的时候将会出现如下信息

stap -v -e 'probe vfs.read {printf("read performed\n"); exit()}'

Pass 1: parsed user script and 466 library scripts using 225932virt/38936res/3312shr/35776data kb, in 320usr/40sys/457real ms.
semantic error: while resolving probe point: identifier 'kernel' at /usr/share/systemtap/tapset/linux/vfs.stp:915:18
source: probe vfs.read = kernel.function("vfs_read")
^

semantic error: missing x86_64 kernel/module debuginfo [man warning::debuginfo] under '/lib/modules/3.10.0-123.20.1.el7.x86_64/build'

semantic error: resolution failed in alias expansion builder

semantic error: while resolving probe point: identifier 'vfs' at :1:7
source: probe vfs.read {printf("read performed\n"); exit()}
^

semantic error: no match

Pass 2: analyzed script: 0 probes, 0 functions, 0 embeds, 0 globals using 231108virt/43972res/5296shr/38852data kb, in 40usr/230sys/1240real ms.
Missing separate debuginfos, use: debuginfo-install kernel-3.10.0-123.20.1.el7.x86_64
Pass 2: analysis failed. [man error::pass2]

如果安装正确,将出现如下信息

stap -v -e 'probe vfs.read {printf("read performed\n"); exit()}'

Pass 1: parsed user script and 466 library scripts using 225904virt/38932res/3304shr/35776data kb, in 310usr/40sys/338real ms.
Pass 2: analyzed script: 1 probe, 1 function, 7 embeds, 0 globals using 345328virt/159536res/4560shr/155200data kb, in 1590usr/510sys/2170real ms.
Pass 3: translated to C into "/tmp/stapwvFvmg/stap_d0091887f101c5487a063e8025e5d4a1_2698_src.c" using 345328virt/159800res/4824shr/155200data kb, in 0usr/0sys/5real ms.
Pass 4: compiled C into "stap_d0091887f101c5487a063e8025e5d4a1_2698.ko" in 5530usr/1130sys/6854real ms.
Pass 5: starting run.
read performed
Pass 5: run completed in 10usr/20sys/318real ms.

参考链接:https://sourceware.org/systemtap/wiki/SystemTapOnCentOS
http://www.hi-roy.com/2016/07/27/CentOS7%E5%AE%89%E8%A3%85systemtap/

你可能感兴趣的:(centos 7 systemtap 安装)