Ubuntu上systemtap安装
2017-11-17 00:08
519 查看
听群里的弟兄们讨论Linux内核调试神器systemtap的神奇,自己也动手安装下玩玩,参照了前辈们的博客教程,并以此文做个简单的记录。
以下就是安装的过程:
(一)安装elfutils,提供分析调试信息的库函数,及libcap-dev
sudo apt-get install elfutils
sudo apt-get install libcap-dev
(二)安装systemtap
也可以下载最新的源码,手动编译安装,这里是直接通过安装包安装:
sudo apt-get install systemtap
注意:如果安装失败可以尝试apt-get update更新一下源试试,如果遇到依赖问题可以用aptitude install尝试.
(三)第三部安装调试需要的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 install systemtap
注意:如果安装失败可以尝试apt-get update更新一下源试试,如果遇到依赖问题可以用aptitude install尝试.
(三)第三部安装调试需要的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.
相关文章推荐
- Ubuntu 安装时(initramfs) Unable to find a medium containing a live file system错误的解决
- systemtap 安装试用
- 安装Ubuntu虚拟机异常处理:FATAL: NO bootable medium found! System halted
- the remote system refused the connection.错误与ubuntu安装openssh-server 报依赖错误的解决过程
- 虚拟机Ubuntu16.04 64位系统,在安装了许多软件包重启后出现 The system is running in low-graphics mode
- systemtap基础安装
- ubuntu14.04下安装tun/tap
- Ubuntu下 安装NVIDIA驱动(循环登陆+开机显示the system is running in low graphic mode问题 )
- CentOS 5.4 final下Systemtap的安装
- win7安装ubuntun双系统,error:unknown filesystem grub rescue
- ROS Kinetic 安装在 Ubuntu16.04报错:Your system is running in low-graphics mode
- Install systemtap on Ubuntu 12.04
- 【SystemTap】SystemTap安装日志——删除2.6.34.7内核源码目录后出现的运行时错误
- VirtualBox安装ubuntu 12.04LTS 图形界面无法启动:The system is running in low-graphics mode
- ubuntu14.04 的ibus不能卸载(安装fcitx输入法框架时可能有这个需求)。出现无system setting有用程序
- 虚拟机安装Ubuntu 出现 The system is running in low-graphics mode解决方法
- 在ubuntu14.04上安装ROS(robot operating system)
- Centos 6.4下SystemTap安装
- 安装Ubuntu14.04遇到filesystem type is ntfs,partition type 0x07问题的解决
- Fedora下的SystemTap安装