在Gregg介绍Linux Tracer的文章中,一共介绍了9种工具,个人打算认真学习掌握其中的四种:
- ftrace
- perf_events
- eBPF
- SystemTap
SystemTap被Gregg称为其中最强大的工具,那么就先从SystemTap开始入手吧!
安装与使用
我是18.04的ubuntu系统,照着ubuntu的SystemTap包的介绍页面安装的。
sudo apt install systemtap
记得安装机器内核的debug symbols:
sudo apt-get install linux-image-$(uname -r)-dbgsym
因为我是之前有安装过debug symbols的包,所以就略过增加相应源的步骤。如果机器没有添加过这个下载内核debug symbols的源的话,按照这个页面指示操作就好了。
安装好后,可以执行stap --help
检查是否安装成功。debug symbols也安装好后,就可以跑一个脚本检测下是否能正常工作:
#! /usr/bin/env stap
probe kernel.function("*@net/socket.c").call {
printf ("%s -> %s\n", thread_indent(1), probefunc())
}
probe kernel.function("*@net/socket.c").return {
printf ("%s <- %s\n", thread_indent(-1), probefunc())
}
记得执行时要有root权限。
近期评论