`

linux 安装Systemtap

 
阅读更多

在之前的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 Tapset Reference

    在 Red Hat Enterprise Linux 6 中,SystemTap 是作为一个可选包提供的,可以通过 yum 命令安装。在安装了 SystemTap 后,可以使用 stap 命令来加载和卸载插件,使用 staprun 命令来运行 SystemTap 脚本。 ...

    Linux内核调试新秀SystemTap.pdf

    Linux内核调试新秀SystemTap.pdf

    Red Hat Enterprise Linux 6 SystemTap Beginners Guide Introducti

    Red Hat Enterprise Linux 6 SystemTap Beginners Guide Introduction to SystemTap

    Ubuntu+Systemtap进行Linux内核和用户空间开发测试

    SystemTap的基本测试包括“HelloWorld”样例,这是学习和验证SystemTap安装是否成功的一个简单方法。通过运行SystemTap脚本,可以看到其如何输出简单的测试信息,从而确认SystemTap环境已正确配置。 内核函数测试是...

    基于SystemTap的Linux服务器性能分析系统的设计与实现.pdf

    【基于SystemTap的Linux服务器性能分析系统的设计与实现】 SystemTap是Linux环境下的一款动态追踪工具,它允许开发者在不修改内核的情况下,收集和分析系统运行时的数据,从而进行性能优化和故障排查。该工具提供了...

    systemtap beginner

    SystemTap是一个强大的Linux内核调试工具,它允许开发者和管理员通过编写脚本来监控和分析Linux系统的行为。它是由Red Hat公司开发和支持的,被广泛用于Linux社区,用以简化内核和用户空间程序的调试过程。SystemTap...

    SystemTap_Beginners_Guide.pdf

    《SystemTap初学者指南》是一份详尽的手册,旨在向用户介绍如何使用SystemTap监控Red Hat Enterprise Linux 5中的各种子系统。该指南适合那些具备RHCT(Red Hat Certified Technician)认证水平或者在Red Hat ...

    cpp-一系列脚本工具和源代码用于在Android上构建安装和运行SystemTap

    SystemTap是一款强大的Linux调试工具,它允许用户编写脚本来收集和分析系统运行时的数据,而无需修改源代码或重新编译。在Android平台上使用SystemTap,可以深入理解系统的内部运作,帮助开发者解决性能问题,诊断...

    動態 Linux kernel 測試工具:SystemTap

    ### 動態 Linux Kernel 測試工具:SystemTap #### 概述 在Linux系統管理與開發領域中,深入探測運行中的系統行為、診斷問題並優化性能一直是一項挑戰。傳統的監控工具如`ps`, `netstat`, `vmstat`, `iostat`, `sar...

    centos7.4.1708 的systemtap的rpm包及其依赖

    SystemTap是Linux操作系统中的一款强大的动态诊断工具,它允许用户以脚本语言的方式对系统进行监控和调试。在CentOS 7.4.1708这个特定的环境中,SystemTap通过RPM(Red Hat Package Manager)包的形式提供,使得用户...

    systemTap英文文档集合.7z

    2. **SystemTap Beginners Guide.pdf**:这是systemTap初学者的入门指南,详细介绍了systemTap的基础知识,包括安装、基本语法、编写简单的探测点(staps)以及如何运行和解析结果。对于刚刚接触systemTap的用户来说...

    systemtap tutorial

    要获得最新的信息,建议查看SystemTap的个体手册页面,这些页面可能已经安装在用户的系统上,或可以在***找到。 该指南的作者是Frank Ch. Eigler,他在2015年10月9日发布了该教程,并在文件底部附上了致谢。文档...

    SystemTap_Beginners_Guide

    SystemTap是一个用于Linux系统的调试和性能监控工具,它允许用户无需修改内核代码或重启系统,就能对内核中的函数调用、变量等进行监控和分析。SystemTap的实现原理基于动态追踪技术,它能够插入预定义的探测点...

    systemtap脚本编写基础很详细

    SystemTap是一种用于Linux内核调试和性能分析的工具,它允许用户编写脚本来检查运行中的内核。SystemTap脚本使用一种专门的脚本语言,提供了丰富的功能用于内核数据的采集和分析。本文档详细介绍了SystemTap脚本编写...

Global site tag (gtag.js) - Google Analytics