Ubuntu上systemtap安装
来源:互联网 发布:阿里云客服一天多少钱 编辑:程序博客网 时间:2024/05/17 22:11
听群里的弟兄们讨论Linux内核调试神器systemtap的神奇,自己也动手安装下玩玩,参照了前辈们的博客教程,并以此文做个简单的记录。
以下就是安装的过程:
(一)安装elfutils,提供分析调试信息的库函数,及libcap-dev
sudo apt-get install elfutils
sudo apt-get install libcap-dev
(二)安装systemtap
也可以下载最新的源码,手动编译安装,这里是直接通过安装包安装:
sudo apt-get remove systemtap
(三)第三部安装调试需要的debuginfon
这是最纠结的一步,本来参照网上其他前辈的安装方法是需要找到与自己本机ubuntu内核完全对应的内核debuginfo,而且要求内核版本号和发行次数完全一致。结果在ubuntu官网上找了半天也未果。最后在一位前辈的指引下,尝试另外一种方法。具体来说,就是自己上网下载自己喜欢的内核版本,手动编译内核,再替换本机内核,相当于自己制作debuginfo。
1.git下载最新的内核源码
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
2.切换到自己喜欢的内核版本,以本机为例
git checkout v3.14.8,之后git show 确认
3.取得.config
最好使用/boot下的原装config,这样升级之后不容易出现问题,但以下选项记得要打开,如果没有打开就make memuconfig打开
CONFIG_DEBUG_INFO
CONFIG_KPROBES
CONFIG_RELAY
CONFIG_DEBUG_FS
CONFIG_MODULES
CONFIG_MODULE_UNLOAD
CONFIG_UPROBES 或者CONFIG_UTRACE
4.make -j N (N为cpu核数,加快编译)
5.make modules
6.make modules_install
7.make install
最后会在/boot目录下生成新内核的config,vmlinuz,initrd.imge和systemmap等。
8.修改grub信息,默认启动最新的内核
第一步,修该/etc/default/grub中的GRUB_DEFAULT一行,GRUB_DEFAULT="M>N",M为第几个menuentry,N为该menuentry第几个submenu,一定注意加引号。
第二步,update-grub.
9.reboot之后,成功了会进入新内核。
(四)验证systemtap是否安装成功
stap -e 'probe kernel.function("sys_open") {log("hello world") exit()}'
工欲善其事,必先利其器,可以好好玩systemtap了,以后文章会介绍systemtap的调试内核的一个bug.
以下就是安装的过程:
(一)安装elfutils,提供分析调试信息的库函数,及libcap-dev
sudo apt-get install elfutils
sudo apt-get install libcap-dev
(二)安装systemtap
也可以下载最新的源码,手动编译安装,这里是直接通过安装包安装:
sudo apt-get remove systemtap
(三)第三部安装调试需要的debuginfon
这是最纠结的一步,本来参照网上其他前辈的安装方法是需要找到与自己本机ubuntu内核完全对应的内核debuginfo,而且要求内核版本号和发行次数完全一致。结果在ubuntu官网上找了半天也未果。最后在一位前辈的指引下,尝试另外一种方法。具体来说,就是自己上网下载自己喜欢的内核版本,手动编译内核,再替换本机内核,相当于自己制作debuginfo。
1.git下载最新的内核源码
git clone git://git.kernel.o
2.切换到自己喜欢的内核版本,以本机为例
git checkout v3.14.8,之后git show 确认
3.取得.config
最好使用/boot下的原装config,这样升级之后不容易出现问题,但以下选项记得要打开,如果没有打开就make memuconfig打开
CONFIG_DEBUG_INFO
CONFIG_KPROBES
CONFIG_RELAY
CONFIG_DEBUG_FS
CONFIG_MODULES
CONFIG_MODULE_UNLOAD
CONFIG_UPROBES 或者CONFIG_UTRACE
4.make -j N (N为cpu核数,加快编译)
5.make modules
6.make modules_install
7.make install
最后会在/boot目录下生成新内核的config,vmlinuz,initrd.imge和systemmap等。
8.修改grub信息,默认启动最新的内核
第一步,修该/etc/default/grub中的GRUB_DEFAULT一行,GRUB_DEFAULT="M>N",M为第几个menuentry,N为该menuentry第几个submenu,一定注意加引号。
第二步,update-grub.
9.reboot之后,成功了会进入新内核。
(四)验证systemtap是否安装成功
stap -e 'probe kernel.function("sys_open") {log("hello world") exit()}'
工欲善其事,必先利其器,可以好好玩systemtap了,以后文章会介绍systemtap的调试内核的一个bug.
阅读全文
0 0
- Ubuntu上systemtap安装
- systemtap 在Ubuntu上安装
- 在Ubuntu上安装使用Systemtap
- ubuntu 11.10 安装systemtap
- ubuntu 11.10 安装systemtap
- ubuntu 11.10 安装systemtap
- ubuntu 13.10安装systemtap
- ubuntu安装systemtap
- UBUNTU 10.04安装SYSTEMTAP
- 如何在ubuntu上基于自定义内核安装systemtap
- 在Ubuntu上使用SystemTap
- 在Ubuntu上使用SystemTap
- ubuntu 11.04下安装systemtap
- CentOS 上 关于 SystemTap 安装
- CentOS 上 关于 SystemTap 安装
- CentOS 5.8 上安装 systemtap-2.6
- 在ubuntu12.04上安装systemtap
- systemtap安装
- CSAPP课程笔记1
- [2017.11.12]Set&HashSet&LinkedHashSet&TreeSet&模拟用户
- Impala中的invalidate metadata和refresh
- 浏览器工作原理详解
- 英文论文-城市云脑,基于互联网云脑的智慧城市新架构
- Ubuntu上systemtap安装
- 使用ThreadPoolExecutor,当提交线程超过maximumPoolSize 会阻塞主线程吗?
- netty(二):事件执行分析
- CCF-训练50题-NO.27-挖掘机技术哪家强
- mysql在Linux环境下开启远程访问权限和开放3306端口
- jquery选择器之层级选择器
- Java的特点
- Re-ID: Person Re-identification by Local Maximal Occurrence Representation and Metric Learning 论文解析
- CCF-训练50题-NO.28-到底买不买