在之前的blog里介绍了一堆systemtap的资料,然后之前一直没安装成功过,这次花时间重新搞了下,终于成功了,很是激动,故分享下,主要是错误处理的分享。
1: libdwfl failure (missing x86_64 kernel/module debuginfo under '/lib/modules/2.6.18-164.11.1.el5/build'):
这个错误是由于缺失 kernel-debuginfo-common 包和 kernel-debuginfo,解决方法是去http://rpm.pbone.net找到对应当前内核版本的debug包,如何看当前内核版本信息呢,使用如下命令 uname -r (一般我们使用uname -a)
切忌 一定要找合适的版本号
参考资料:http://steven1981.itpub.net/post/7967/525257
然后sudo rpm ivh XXXXXXXX
安装好了以后可以看到 /usr/lib/debug 目录下有东西了。
然后需要告诉Systemtap去找这个debug信息了。
参考资料来自:
http://sources.redhat.com/git/?p=systemtap.git;a=blob_plain;f=README;hb=HEAD
- By default, systemtap looks for the debug info in these locations:
/boot/vmlinux-`uname -r`
/usr/lib/debug/lib/modules/`uname -r`/vmlinux
/lib/modules/`uname -r`/vmlinux
/lib/modules/`uname -r`/build/vmlinux
依据这个默认搜索路径,我们可以将debug的vmlinux链接到/lib/modules下,例如我的
sudo ln -s /usr/lib/debug/lib/modules/2.6.18-164.15.1.el5/vmlinux /lib/modules/2.6.18-164.el5xen
2:当执行简单的probe begin { log("hello world") exit() }可以,但是执行复杂的脚本就报以下错误
semantic error: failed to retrieve location attribute for local ‘next’ (dieoffset: 0x6660f0): identifier ‘$next’ at /usr/share/systemtap/tapset/scheduler.stp:39:17
source: task_next = $next
排除你内核debug版本不一致的问题,一般这个错误可以升级当前的systemtap版本解决
sudo yum update systemtap
3:Array overflow, check MAXMAPENTRIES near identifier
解决方案是 -DMAXMAPENTRIES=10240 类似java -D参数
这里可以参见霸爷的blog的文章:
突破systemtap脚本对资源使用的限制
http://blog.yufeng.info/archives/1213
分享到:
相关推荐
在 Red Hat Enterprise Linux 6 中,SystemTap 是作为一个可选包提供的,可以通过 yum 命令安装。在安装了 SystemTap 后,可以使用 stap 命令来加载和卸载插件,使用 staprun 命令来运行 SystemTap 脚本。 ...
Linux内核调试新秀SystemTap.pdf
Red Hat Enterprise Linux 6 SystemTap Beginners Guide Introduction to SystemTap
SystemTap的基本测试包括“HelloWorld”样例,这是学习和验证SystemTap安装是否成功的一个简单方法。通过运行SystemTap脚本,可以看到其如何输出简单的测试信息,从而确认SystemTap环境已正确配置。 内核函数测试是...
【基于SystemTap的Linux服务器性能分析系统的设计与实现】 SystemTap是Linux环境下的一款动态追踪工具,它允许开发者在不修改内核的情况下,收集和分析系统运行时的数据,从而进行性能优化和故障排查。该工具提供了...
SystemTap是一个强大的Linux内核调试工具,它允许开发者和管理员通过编写脚本来监控和分析Linux系统的行为。它是由Red Hat公司开发和支持的,被广泛用于Linux社区,用以简化内核和用户空间程序的调试过程。SystemTap...
《SystemTap初学者指南》是一份详尽的手册,旨在向用户介绍如何使用SystemTap监控Red Hat Enterprise Linux 5中的各种子系统。该指南适合那些具备RHCT(Red Hat Certified Technician)认证水平或者在Red Hat ...
SystemTap是一款强大的Linux调试工具,它允许用户编写脚本来收集和分析系统运行时的数据,而无需修改源代码或重新编译。在Android平台上使用SystemTap,可以深入理解系统的内部运作,帮助开发者解决性能问题,诊断...
### 動態 Linux Kernel 測試工具:SystemTap #### 概述 在Linux系統管理與開發領域中,深入探測運行中的系統行為、診斷問題並優化性能一直是一項挑戰。傳統的監控工具如`ps`, `netstat`, `vmstat`, `iostat`, `sar...
SystemTap是Linux操作系统中的一款强大的动态诊断工具,它允许用户以脚本语言的方式对系统进行监控和调试。在CentOS 7.4.1708这个特定的环境中,SystemTap通过RPM(Red Hat Package Manager)包的形式提供,使得用户...
2. **SystemTap Beginners Guide.pdf**:这是systemTap初学者的入门指南,详细介绍了systemTap的基础知识,包括安装、基本语法、编写简单的探测点(staps)以及如何运行和解析结果。对于刚刚接触systemTap的用户来说...
要获得最新的信息,建议查看SystemTap的个体手册页面,这些页面可能已经安装在用户的系统上,或可以在***找到。 该指南的作者是Frank Ch. Eigler,他在2015年10月9日发布了该教程,并在文件底部附上了致谢。文档...
SystemTap是一个用于Linux系统的调试和性能监控工具,它允许用户无需修改内核代码或重启系统,就能对内核中的函数调用、变量等进行监控和分析。SystemTap的实现原理基于动态追踪技术,它能够插入预定义的探测点...
SystemTap是一种用于Linux内核调试和性能分析的工具,它允许用户编写脚本来检查运行中的内核。SystemTap脚本使用一种专门的脚本语言,提供了丰富的功能用于内核数据的采集和分析。本文档详细介绍了SystemTap脚本编写...