ubuntu+systemtap进行Linux内核和用户空间开发测试

【摘要】本文主要介绍在ubuntu平台 + 自定义内核上如何安装systemtap工具包及解决编译加载运行过程中的一些问题,如何利用systemtap工具监测分析内核函数,内核模块及用户态程序。【关键字】ubuntu, systemtap, utrace, backtrace, dtrace, callstack
摘要由CSDN通过智能技术生成

ubuntu+systemtap进行Linux内核和用户空间开发测试

Sailor_forever  sailing_9806#163.com

(本原创文章发表于Sailor_forever 的个人blog,未经本人许可,不得用于商业用途。任何个人、媒体、其他网站不得私自抄袭;网络媒体转载请注明出处,增加原文链接,否则属于侵权行为。如有任何问题,请留言或者发邮件给sailing_9806#163.com)

 【摘要】本文主要介绍在ubuntu平台 + 自定义内核上如何安装systemtap工具包及解决编译加载运行过程中的一些问题,如何利用systemtap工具监测分析内核函数,内核模块及用户态程序。

【关键字】ubuntu, systemtap, utrace, backtrace, dtrace,callstack

1       Systemtap安装... 2

1.1        Apt-get自动安装systemtap. 2

1.2        源代码编译安装systemtap. 2

1.2.1         卸载通过apt-get自动安装的systemtap. 2

1.2.2         下载systemtap源码包... 2

1.2.3         编译安装... 3

1.3        安装内核debug info. 3

2       HelloWorld基本测试... 3

3       内核函数测试... 4

3.1        基本功能... 4

3.2        函数调用栈... 4

4       内核模块测试... 5

5       用户态监控Utrace. 6

5.1        Utracepatch. 6

5.2        函数跟踪测试... 7

5.3        打印用户态调用栈... 9

6       Systemtap加载KO异常,Unknown symbol in module. 9

6.1        异常现象... 9

6.2        分析异常原因... 10

6.3        Workaround. 12

7       error:implicit declaration of function ‘unregister_uprobe13

8       参考资料... 14

 

Systemtap 是学习内核一个必不可少的工具,它不仅可以侦测内核空间的相关信息,还可以侦测用户空间的信息,是研究内核源代码、优化系统性能及调试诊断系统问题的一个必备工具。相关原理信息可参见附录https://wiki.ubuntu.com/Kernel/Systemtap及“Linux 下的一个全新的性能测量和调式诊断工具 Systemtap, 第 3 部分: Systemtap”

http://www.ibm.com/developerworks/cn/linux/l-cn-systemtap3/#main

 

1     Systemtap安装

1.1 Apt-get自动安装systemtap

用系统工具自动安装systemtap时,用户不用考虑各个软件包的依赖关系,系统会自动根据当前内核版本下载相应的软件包。

dd@ubuntu:/mnt/hgfs/systemtap/kvm$ sudoapt-get install systemtap

。。

The following extra packages will beinstalled:

  libdw1 systemtap-commonsystemtap-runtime

The following NEW packages will beinstalled:

 libdw1 systemtap systemtap-common systemtap-runtime

Get:1 http://us.archive.ubuntu.com/ubuntu/quantal-updates/main libdw1 i386 0.153-1ubuntu1.1 [216 kB]

。。

如上可知,系统自动安装了相关的4个软件包libdw1 systemtap-common systemtap-runtime

1.2 源代码编译安装systemtap

有时候系统自动安装的不一定能用,这个时候需要升级,此时只能通过下载源代码自己编译

1.2.1      卸载通过apt-get自动安装的systemtap

首先要卸载系统之前安装的相关package,避免后续带来其他副作用。

dd@ubuntu:/mnt/hgfs/systemtap$ sudo apt-getremove systemtap systemtap-common systemtap-runtime

。。

Removing systemtap ...

Removing systemtap-common ...

Removing systemtap-runtime ...

Processing triggers for man-db ...

 

1.2.2      下载systemtap源码包

下载相应版本的源码包。源码包并不是越新越好,因为他们之间有一定的依赖关系,最简单的是按照内核源码包发布的时间来选择systemtap。

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值