ubuntu 11.10 安装systemtap

转载:http://blog.csdn.net/ustc_dylan/article/details/7079876

1.  从源安装systemtap

$ sudo apt-get install systemtap

2. 由于ubuntu 桌面版默认没有安装kernel-debug-info,所以安装了systemtap后仍然不能够追踪内核信息,因此需要手动安装kernel-debug-info包。

 (1)查看当前内核版本

$ uname -ar(2)下载对应内核版本的debug-info package

http://ddebs.ubuntu.com/pool/main/l/linux/
这里下载 linux-image-3.0.0-15-generic-dbgsym_3.0.0-15.24_i386.ddeb

3. 安装linux-image-3.0.0-15-generic-dbgsym_3.0.0-15.24_i386.ddeb

$sudo dpkg -i linux-image-3.0.0-15-generic-dbgsym_3.0.0-15.24_i386.ddeb

经过以上安装配置后,就可以跟踪监控内核信息了,但是现在还不能跟踪linux内核模块的信息,因为,systemtap对linux内核模块的跟踪是通过libelf库来查找
/usr/lib/debug目录下以.ko.dedug结尾的模块,但是linux发行版通常将linux模块的扩展名修改为.ko。

4. 安装_elfutils_并进行相应配置

$sudo apt-get install  elfutils

  1. for file in `find /usr/lib/debug-name'*.ko' -print`

  2.     do

  3.     buildid=`eu-readelf-n $file| grep Build.ID:| awk '{print $3}'`

  4.     dir=`echo $buildid| cut-c1-2`

  5.     fn=`echo $buildid| cut-c3-`

  6.     rm -fr /usr/lib/debug/.build-id

  7.     mkdir -p/usr/lib/debug/.build-id/$dir

  8.     ln -s $file/usr/lib/debug/.build-id/$dir/$fn

  9.     ln -s $file/usr/lib/debug/.build-id/$dir/${fn}.debug

  10.     done

5. 写个例子测试下

$sudo stap -ve 'probe begin { log("hello world") exit() }'

如果能够打印出hello world,说明安装配置成功!

[cpp]  view plain copy

  1. <pre name="code" class="css"><pre name="code" class="cpp"><pre name="code" class="css"><pre></pre>

  2. <pre></pre>
  3. <pre></pre>
  4. <pre></pre>
  5. <pre></pre>
  6. <pre></pre>
  7. <pre></pre>
  8. <pre></pre>
  9. <pre></pre>
  10. <pre></pre>
  11. <pre></pre>
  12. <pre></pre>
  13. <pre></pre>
  14. <pre></pre>
  15. <pre></pre>
  16. <pre></pre>
  17. <pre></pre>
  18. <pre></pre>
  19. <pre></pre>
  20. <pre></pre>
  21. <pre></pre>
  22. <pre></pre>
  23. <pre></pre>
  24. <pre></pre>
  25. <pre></pre>
  26. <pre></pre>
  27. <pre></pre>
  28. <pre></pre>
  29. <pre></pre>
  30. <pre></pre>
  31. <pre></pre>
  32. <pre></pre>
  33. <pre></pre>
  34. <pre></pre>
  35. <pre></pre>
  36. <pre></pre>
  37. </pre></pre></pre>

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )