说明
systemtap是内核调试的一个利器,但是与其他内核调试工具相比,这款调试工具有自己的语法要求,相当于一个makefile一样。本文在阅读多篇博客后,折腾多时,成功出现“hello world”,在这里总结systemtap的安装心得。下面是我的安装环境:
- ubuntu16.04
- 调试内核linux-4.15(此时最新的)
systemtap安装
- 方式一:sudo apt install systemtap
借助ubuntu的apt指令直接安装,包括后面的debuginfo
方式一说明:安装的systemtap不是最新的版本,调试新的内核时,测试可能不成功。
- 方式二:git clone git://sourceware.org/git/systemtap.git
得到systemtap源代码,按照./configure —> make —> sudo make install安装。
这种方式主要调试自己编译的内核,通过配置内核不再需要安装debuginfo文件。如何调试系统自带的内核,也可以通过这种方式安装systemtap,与上面的apt方式安装systemtap相比,这种方式安装的是最新的systemtap,基本支持系统的内核和目前较新的内核。
测试
stap -ve ‘probe kernel.function(“do_fork”) { print(“hello world\n”) exit() }’
没有任何错误并出现hello world,代表可使用当前安装的systemtap调试当前内核。安装systemtap的感受就是尽量使用最新的systemtap版本调试内核。