• 【linux内核调试】- centos7安装systemtap


    systemtap 是什么,看百度百科如何说的。SystemTap 是监控和跟踪运行中的Linux 内核的操作的动态方法。这句话的关键词是动态,因为SystemTap 没有使用工具构建一个特殊的内核,而是允许您在运行时动态地安装该工具。

    实现方式:Kprobes 的应用编程接口(API)
    必要软件:kernel-debuginfo、elfutilsRPM
    作 用:监控和跟踪运行中的Linux内核
    运行条件:root权限
    相似技术:DTrace

    上面已经说的比较清楚了,是通过Kprobes 实现的,可以监控和跟踪运行中的linux内核。 至于具体的用法下篇再整理下,这里单独说安装。

    一、本机环境

    [root@localhost ~]# lsb_release -a
    LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
    Distributor ID: CentOS
    Description:    CentOS Linux release 7.4.1708 (Core) 
    Release:        7.4.1708
    Codename:       Core
    [root@localhost ~]# 
    [root@localhost ~]# uname -ra
    Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    二、开始安装

    以下均用root权限去操作。
    
    • 1

    1、安装rpm包

    yum install -y systemtap systemtap-runtime
    
    • 1

    2、安装之后可以使用stap-prep 安装对应的依赖

    我们看下这个工具的描述
    stap-prep - prepare system for systemtap use
    执行该命令会自动的去下载和安装 stap 所需要的依赖,当然如果不能自动安装的话,该命令也会告诉你具体的依赖文件,手动安装即可

    [root@localhost ~]# stap-prep 
    
    • 1

    3、手动安装必要的内核信息包

    kernel-debuginfo
    kernel-debuginfo-common
    kernel-devel
    去对应的网站下载即可(下面的几个应该都可以下载):
    
    • 1
    • 2
    • 3
    • 4
    http://mirror.facebook.net/centos-debuginfo/
    http://linuxsoft.cern.ch/centos-debuginfo/
    https://ftp.sjtu.edu.cn/scientific/7/archive/debuginfo/
    ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/7.0/
    
    • 1
    • 2
    • 3
    • 4

    4、运行测试SystemTap

    [root@localhost ~]# stap -e 'probe begin{printf("Hello, World"); exit();}'
    Hello, World
    
    • 1
    • 2

    5、错误情况

    如果比较顺利的话,后面的就不需要看了
    
    • 1

    ① 如果安装的systemTap版本不是自己想要的,或者说默认的有问题的话,可以建议手动安装

    下载地址:https://sourceware.org/systemtap/wiki/SystemTapReleases

    安装很简单,不做详细介绍了:

    tar -zxvf XX.tar.gz
    cd XX
    make
    make install
    执行结束后,执行文件在 _install/bin/ 下面
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ② 如果提示 时间 对不上
    修改vim /usr/src/kernels/3.10.0-693.el7.x86_64/include/generated/compile.h
    中的UTS_VERSION ,修改为正确的,再尝试运行 或 重现编译安装stap

    在这里插入图片描述

    使用stap -V 可以查看具体的版本号,如果是自己安装的话,版本号还是之前的没有替换掉,就使用ln 重新链接下

    ln -s /root/systemtap-4.7/_install/bin/stap /usr/bin/stap
    
    • 1

    参考:https://www.cnblogs.com/wipan/p/9333623.html

  • 相关阅读:
    ApacheDBUtils的使用
    C语言经典100例题(56-60)--画圆;画方;画线
    【嵌入式软件开发】之面试常识(一)
    【无标题】
    《009.SpringBoot之汽车租赁系统》
    学信息系统项目管理师第4版系列34_10大管理49过程ITTO
    Android resource/drawable转换成Uri,Kotlin
    JavaBean处理器之MapStruct
    微信小程序开发15 KISS:怎么设计简单易用的云开发函数?
    40.讲初识动态规划:如何巧妙解决“双十一”购物时的凑单问题
  • 原文地址:https://blog.csdn.net/cddchina/article/details/125546780