systemtap安装&内核调试环境配置
2012-07-16 16:27
537 查看
参考其官网:http://sourceware.org/systemtap/wiki
我是在ubuntu下安装的,所以转至这个网页:
http://sourceware.org/systemtap/wiki/SystemtapOnUbuntu
参考网页:http://blog.csdn.net/ustc_dylan/article/details/7079876
http://blog.csdn.net/heli007/article/details/7187748
1.systemtap的安装
systemtap的安装是很简单的,一条命令足以:
$sudo apt-get install systemtap
此时,你执行如下测试命令:
$sudo stap -ve 'probe
begin { log("hello world") exit() }'
也是可以正确打印出hello world的,但是,注意到这个小脚本中并不包含任何的与内核相关的跟踪信息,只是简单的打印hello world,因此,现在并不能开始调试内核,要对系统的环境进行配置。
2.环境配置
为什么配置?配置什么?
既然号称调试内核,那么一定是要有符号表的,但是一般情况下你安装的内核是不包含debug信息的,因为这个太大了。所以,我们现在需要增加debug信息,添加符号表等调试过程中需要的信息。有两种方式:
(1)重新编译内核,这次记得要在配置选项中增加debug选项。然后用新编译的内核替换你现在的内核。注意,这两个内核的版本要相同。(uname -r 就可以看到你用的哪个版本的内核了)
(2)按照官网的解决方法:
$sudo apt-get install linux-image-$(uname -r)-dbgsym.
但是这个命令并不凑效,因为你的更新源中可能并没有包含相应的dbgsys。因此,你可以自己下载对应版本的dbgsym。下载的网址是:http://ddebs.ubuntu.com/pool/main/l/linux/
下载完毕之后:
$sudo dpkg -i linux-image-3.2.0-26-generic-pae-dbgsym_3.2.0-26.41_i386.ddeb
这样,就在你的现有内核的基础上加入了调试信息。
但是现在还是不能够跟踪内核,按照官网的步骤,你还需要:
$sudo apt-get install elfutils
然后编辑shell脚本config_elfutils,并且运行($sudo sh config_elfutils),现在你可以跟踪内核信息了。
我是在ubuntu下安装的,所以转至这个网页:
http://sourceware.org/systemtap/wiki/SystemtapOnUbuntu
参考网页:http://blog.csdn.net/ustc_dylan/article/details/7079876
http://blog.csdn.net/heli007/article/details/7187748
1.systemtap的安装
systemtap的安装是很简单的,一条命令足以:
$sudo apt-get install systemtap
此时,你执行如下测试命令:
$sudo stap -ve 'probe
begin { log("hello world") exit() }'
也是可以正确打印出hello world的,但是,注意到这个小脚本中并不包含任何的与内核相关的跟踪信息,只是简单的打印hello world,因此,现在并不能开始调试内核,要对系统的环境进行配置。
2.环境配置
为什么配置?配置什么?
既然号称调试内核,那么一定是要有符号表的,但是一般情况下你安装的内核是不包含debug信息的,因为这个太大了。所以,我们现在需要增加debug信息,添加符号表等调试过程中需要的信息。有两种方式:
(1)重新编译内核,这次记得要在配置选项中增加debug选项。然后用新编译的内核替换你现在的内核。注意,这两个内核的版本要相同。(uname -r 就可以看到你用的哪个版本的内核了)
(2)按照官网的解决方法:
$sudo apt-get install linux-image-$(uname -r)-dbgsym.
但是这个命令并不凑效,因为你的更新源中可能并没有包含相应的dbgsys。因此,你可以自己下载对应版本的dbgsym。下载的网址是:http://ddebs.ubuntu.com/pool/main/l/linux/
下载完毕之后:
$sudo dpkg -i linux-image-3.2.0-26-generic-pae-dbgsym_3.2.0-26.41_i386.ddeb
这样,就在你的现有内核的基础上加入了调试信息。
但是现在还是不能够跟踪内核,按照官网的步骤,你还需要:
$sudo apt-get install elfutils
然后编辑shell脚本config_elfutils,并且运行($sudo sh config_elfutils),现在你可以跟踪内核信息了。
for file in `find /usr/lib/debug -name '*.ko' -print` do buildid=`eu-readelf -n $file| grep Build.ID: | awk '{print $3}'` dir=`echo $buildid | cut -c1-2` fn=`echo $buildid | cut -c3-` mkdir -p /usr/lib/debug/.build-id/$dir ln -s $file /usr/lib/debug/.build-id/$dir/$fn ln -s $file /usr/lib/debug/.build-id/$dir/${fn}.debug done
相关文章推荐
- ZED 相机 && ORB-SLAM2安装环境配置与ROS下的调试
- 配置pycharm远程调试的环境(服务器为linux系统)&&服务器上安装tensorflow-gpu及配置cuda环境&&相关问题的解决办法
- Windows内核 - 调试:符号文件和Windbg的安装与环境配置
- Windows内核调试:符号文件和Windbg的安装与环境配置
- Windows内核调试:符号文件和Windbg的安装与环境配置
- 【SystemTap】c独立安装elfutils导致错误 cannot load ld backend library 'libld_elf_x86_64.so' 和 error: C compiler cannot create executables
- 【安装oracle——准备工作】配置内核参数+添加用户组及用户+为oracle用户配置shell限制+创建目录结构+设置oracle环境
- PHP开发环境&MySQL下载安装及配置流程
- Java SE 环境安装和配置
- IIS环境下快速安装、配置和调试PHP5.2.0
- IIS 环境下快速安装、配置和调试PHP5.2.0 【转】
- IIS环境下快速安装、配置和调试PHP5.2.0
- centos 安装amp 运行环境+配置虚拟地址
- PHP5环境非安装配置 以及 EClipse单步调试配置 的方法 100%成功
- 转 -Linux 自检和 SystemTap (强大的内核调试工具)---包含下载地址
- 内核调试神器SystemTap — 探测点与语法(二)
- windows下安装NetBeans IDE & 配置C++编译环境
- eclipse SDK 安装和配置 GDB 为 C/C++ 开发环境提供 debug 调试 [ 带自录制视频 ]
- JProfiler9.1.1安装和远程调试linux环境Tomcat配置
- linux :内核调试神器SystemTap — 简介与使用(一)