首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏hotarugaliの技术分享

    SystemTap

    Systemtap 包含了一个黑名单,其中列出的函数不能被 Systemtap 探测,因为它们会导致无限探测循环、锁重入等问题。 Systemtap 脚本文件是 .stp 后缀的文件,使用的脚本语言是前面讲到的 Systemtap 自己定义的脚本语言,一个 Systemtap 脚本描述了将要探测的探测点以及定义了相关联的处理函数, Systemtap 实现了一个脚本转换器/翻译器,当用户执行一个 Systemtap 脚本时,Systemtap 将首先对它进行分析和一些安全检查,如果它引用了 Systemtap 预定义的脚本库提供的函数 脚本语言 SystemTap 中有两个重要的概念: event 和 handler。 在 SystemTap 执行一个脚本时,它会监控事件(event)。 附录 SystemTap官网教程文档

    70020编辑于 2022-02-28
  • 来自专栏linux驱动个人学习

    systemtap从入门到放弃(一)

    对于systemtap,有人可能熟悉有人可能没听过,本文从入门层次简介systemtap的原理和安装使用,分为两篇,本篇主要介绍原理和脚本语法。 文章冗长,多处包含"劝退"功能,下面跟我一起"从入门到放弃" 吧 -_- 什么是systemtapsystemtap是一个用于简化linux系统运行形态信息收集的开源工具。 这是systemtap官方wiki给出的介绍,这里不深究它的原理,网上有个图可以清晰得展现systemtap的五脏六腑: systemtap可以动态得hook内核代码,其底层就是使用的kprobe接口 systemtap语法简介 systemtap 的核心思想是定义一个事件(event),以及给出处理该事件的句柄(Handler)。 Systemtap支持许多内置探测事件,这些事件是systemtap官方预先写好的脚本,被称为tapset。

    1.5K30编辑于 2023-01-01
  • 来自专栏腾讯技术工程官方号的专栏

    ​内核调试技巧--systemtap定位丢包原因

    kfree_skb函数中已经埋下了trace点,并且通过__builtin_return_address(0)记录下了调用kfree_skb的函数地址并传给location参数,因此可以利用systemtap 实际上systemtap可以做的更多,如内存泄露,系统调用失败,统计流量等等,github上也有很多实用的脚本。

    4.2K30发布于 2021-04-09
  • 来自专栏linux驱动个人学习

    systemtap从入门到放弃(二)

    前言 上一篇《systemtap从入门到放弃(一)》我们知道了什么是systemtap,以及如何书写简单的systemtap脚本。 本篇承接上文,介绍systemtap的安装和简易场景应用,通过几个小例子掌握systemtap在内核开发调试中的简单使用。 安装systemtap 在linux发行版上安装systemtap,相对而言是一件比较简单得事情,可以选择命令行直接安装,也可以选择源码安装。 apt-get install systemtap-sdt-dev 其他安装方式可以参考systemtap官方wiki。 另外systemtap在性能测试方面也有很多用处,有需要的朋友可以自行去systemtap官网上查看。

    1.5K40编辑于 2023-01-05
  • 来自专栏linux百科小宇宙

    Linux下systemtap和火焰图介绍及安装

    一、Systemtap介绍及安装 SystemTap 是对 Linux 内核监控和跟踪的工具,详细的介绍及说明见官网。 1.2 安装SystemTap 安装部署SystemTap需要以下两个包: systemtap systemtap-runtime   在root 权限下,使用yum安装,命令如下: yum install systemtap systemtap-runtime   在使用SystemTap前,需要安装内核信息包 /openresty/openresty-systemtap-toolkit.git 工具放在openresty-systemtap-toolkit目录下   以查看 nginx为例: 1)、使用SystemTap进行内核数据采集: 运行: $ .

    1.9K20发布于 2021-06-08
  • 来自专栏皮振伟的专栏

    使用systemtap分析qemu发生crash的原因

    是时候使用systemtap了。 使用systemtap需要有debug symbol,如果是发行版,可以参考发行版提供的kernel symbol,参考官方的教程,可以搭建起来systemtap的使用环境。 后记: systemtap是一个很好的工具,值得拥有!本文的场景下,当然也可以使用printk来逐步分析~ 这个问题找到root cause,安心多了。

    2.2K90发布于 2018-04-09
  • 来自专栏笔记+

    systemtap实现查找unused dentry对应文件小工具

    # stap -L 'kernel.function("dput")' kernel.function("dput@fs/dcache.c:641") $dentry:struct dentry* SystemTap echo "hello" >/mnt/file$i.txt;done 3. rm /mnt/file*.txt -rf 4.stap -g -v dump_dentry_path.stp vdb1 5. systemtap 代码将unused dentry对应的文件路径保存到 /run/dump_dentry.txt: cat /run/dump_dentry.txt 因为SystemTap运行时会关闭中断,而当调用file_open

    2K40发布于 2020-05-31
  • 来自专栏皮振伟的专栏

    linux、kernel 使用 systemtap 分析 sys_clone 失败的原因

    是时候使用systemtap了。 使用systemtap需要有debug symbol,如果是发行版,可以参考发行版提供的kernel symbol,参考官方的教程,可以搭建起来systemtap的使用环境。

    3.3K10发布于 2017-09-25
  • 来自专栏运维研习社

    动态跟踪分析Nginx-工具介绍篇

    SystemTap也是开源的动态跟踪工具,可以跟踪linux内核态以及用户态,收集详细的信息供开发或运维人员分析及诊断问题 CentOS安装systemtap就很简单了,直接yum安装就可以 ? systemtap依赖内核扩展包,所以需要安装对应内核版本的扩展包,否则会报错找不到需要的包 ? 安装所需内核扩展包,可以通过stap-prep查看需要的包 ? 验证支持后就可以开始使用systemtap动态分析nginx了,不过nginx官网只提供了DTrace的脚本,如果你对systemtap不熟悉,可以找大神写的openresty-systemtap-toolkit nginx,那么你还是需要学习systemtap用法,或者是用官方提供的DTrace的脚本,转换为SystemTap脚本,SystemTap官网提供了DTrace转换SystemTap脚本的步骤,具体可查看 /systemtap/wiki openresty-systemtap-toolkit:https://github.com/openresty/openresty-systemtap-toolkit

    1.8K10发布于 2020-06-15
  • 来自专栏绿盟科技安全情报

    【漏洞通告】Linux sudo权限提升漏洞(CVE-2021-3156)

    官方下载链接:https://www.sudo.ws/download.html 注:建议用户在升级前做好数据备份工作,避免出现意外 4.2 临时防护措施 Red Hat相关用户若暂时无法进行升级操作,可使用systemtap 安装所需的systemtap软件包和依赖项: systemtap yum-utils kernel-devel-"$(uname -r)" RHEL 7:使用命令安装 kernel debuginfo 创建以下systemtap脚本(将文件命名为sudoedit-block.stap): probe process("/usr/bin/sudo").function("main") { 一旦安装了补丁程序,就可以通过取消systemtap进程来删除systemtap脚本。 例如,通过使用以下命令(其中7590是systemtap进程的PID): # kill -s SIGTERM 7590 END 作者:绿盟科技威胁对抗能力部 ? ?

    1.7K50发布于 2021-02-02
  • 来自专栏腾讯技术工程官方号的专栏

    程序员精进之路:性能调优利器--火焰图

    作者:厉辉,腾讯 CSIG 后台开发工程师 本文主要分享火焰图使用技巧,介绍 systemtap 的原理机制,如何使用火焰图快速定位性能问题原因,同时加深对 systemtap 的理解。 这也导致 SystemTap 启动比较缓慢,并且依赖于完整的调试符号表。 使用 SystemTap 绘制火焰图的主要流程如下: 安装 SystemTap 以及 操作系统符号调试表 根据自己所需绘制的火焰图类型以及进程类型选择合适的脚本 生成内核模块 运行 SystemTap 或者运行生成的内核模块统计数据 将统计数据转换成火焰图 本文演示步骤将会基于操作系统 Tlinux 2.2 安装 SystemTap 以及 操作系统符号调试表 使用 yum 工具安装 systemtap : yum install systemtap systemtap-runtime 由于 systemtap 工具依赖于完整的调试符号表,而且生产环境不同机器的内核版本不同(虽然都是Tlinux 2.2

    2.1K50发布于 2020-06-15
  • 来自专栏腾讯技术工程官方号的专栏

    内核调试技巧-逆向寻踪,揭开 LACP 协议流程的神秘面纱

    编写 systemtap 脚本如下: 2、 对于本设备,systemtap probe 函数 bond_3ad_state_machine_handler 发现其调用时 ad_lacpdu_send 先用 systemtap 看下行号和汇编指令的对应关系: 汇编的几个[test 和 je/jne]指令刚好和上面的 ad_tx_machine 源码中 if 的逻辑是一致的。 ,此时可以通过 crash 或者 systemtap 继续校验。 这里通过 systemtap 提取 port 的 adctor_system 成员的 mac 地址来校验。 欢迎各位一起切磋,一起玩 systemtap

    1.5K40发布于 2021-10-09
  • 来自专栏数据库相关

    高性能:6-bpftrace工具介绍【bpf performance tools读书笔记】

    l Systemtap bpftrace和SystemTap均提供高级语言。 bpftrace基于内置Linux技术,而SystemTap添加了自己的内核模块,事实证明,这些模块在RHEL以外的系统上都不可靠。 正如bpftrace所做的那样,SystemTap支持BPF后端的工作已经开始,这应该使其在其他系统上更可靠。SystemTap当前在其库(磁带集)中具有更多辅助功能,可用于检测不同的目标。

    1.9K21发布于 2020-03-06
  • 来自专栏专注网络研发

    揭开服务程序“被杀”之谜

    第二个方法:systemtap 编写systemtap脚本,来探测kill调用。 然后调用systemtap的函数pid2execname得到该pid的进程名。 当条件为真时,表明kill要发送的目标pid就是我们要监视服务进程。 最后使用通过systemtap的argstr,打印kill的完整参数 看一下执行效果 ? 第四个方法:bcc bcc与systemtap类似,是一个可以编写ebpf的工具集。除了可以直接编写ebpf程序外,它也提供了一套与bpftrace相似的现成工具,并提供了更多的选项。 ?

    1.9K31发布于 2020-06-05
  • 来自专栏程序人生

    [产品与技术] Flight data recorder

    网上关于软件系统中的FDR的信息还很少,除了我了解的systemtap的flight record mode(FRM)外,就是Java中对FDR的支持了。我们先看Java FDR。 systemtap的飞行模式(FRM)是另外一种FDR。 如果你在linux下进行系统开发而没有涉猎systemtap,建议研究一下。 systemtap给予你写段脚本runtime注入到目标软件中,从软件中获取信息的能力。这功能如此凶悍,所以你需要"sudo"的权限来运行systemtap。 简单讲一下systemtap的原理: (1) 首先用户可以撰写stap脚本,选择要注入的进程和函数 (2) stap脚本被编译成c文件,然后编译成kernel module,通过insmod加载进内存。 如果打开systemtap的飞行模式,则其会不断往1MB(可配置)的一个Kernel缓冲区中写监控数据,并且在需要的时候输出进行分析。 对于FDR而言,有了称手的工具是远远不够的。

    1.1K90发布于 2018-03-28
  • 来自专栏MySQL参数系列

    linux下内核信息追踪的几种工具

    1、trace、trace-cmd 2、BPF、eBPF https://github.com/iovisor/bcc 3、perf 4、SystemTap https://sourceware.org /systemtap/wiki 5、sysdig

    84830编辑于 2022-12-19
  • 来自专栏企鹅号快讯

    TCP是否会乱序

    Linux借鉴了这一思想提供了SystemTap来达到类似的目的。 关于SystemTap的介绍和用法不在本文做详细展开,大家可以自行参考网上的资料(SystemTap非常强大,绝对是系统工程师的“核武器”)。 Ubuntu上使用SystemTap需要安装内核的调试文件(Debug Symbol Packages),具体方法自行搜索。下面是实验步骤: (1). (3) 最关键的一步,为了让一行数据可以被拆分成多个TCP数据包,把网卡的MTU值修改为100 (4) 最后展示一下SystemTap脚本(tcp.stp) 这段脚本非常简单,挂在内核函数、上。

    3.1K60发布于 2018-02-12
  • 来自专栏c语言与cpp编程

    Linux黑科技:浅析动态追踪技术

    很多工程师都尝试过把 DTrace 移植到 Linux 中,这其中,最著名的就是 RedHat 主推的 SystemTap。 同 DTrace 一样,SystemTap 也定义了一种类似的脚本语言,方便用户根据需要自由扩展。 不过,不同于 DTrace,SystemTap 并没有常驻内核的运行时,它需要先把脚本编译为内核模块,然后再插入到内核中执行。这也导致 SystemTap 启动比较缓慢,并且依赖于完整的调试符号表。 和 sysdig SystemTap 也是一种可以通过脚本进行自由扩展的动态追踪技术。 在 eBPF 出现之前,SystemTap 是 Linux 系统中,功能最接近 DTrace 的动态追踪机制 所以,从稳定性上来说,SystemTap 只在 RHEL 系统中好用,在其他系统中则容易出现各种异常问题

    1K11编辑于 2024-05-28
  • 来自专栏Tech Explorer

    Linux LoadAvg 编程比赛

    《用systemtap来修改下linux内核变量的值》 http://blog.yufeng.info/archives/102 《Install SystemTap in Ubuntu 14.04 》 http://blog.jeffli.me/blog/2014/10/10/install-systemtap-in-ubuntu-14-dot-04/ 2.

    68830发布于 2021-06-25
  • 来自专栏以终为始

    【性能工程 - eBPF 技术】什么是 kprobe 和 uprobe?一文详解 kprobe 和 uprobe 奥秘

    利用工具辅助查看 SystemTapSystemTap 是一个强大的动态跟踪工具,它基于 kprobe 等底层机制构建。 虽然 SystemTap 本身不是直接用于查看可跟踪函数,但可以通过它来间接发现。 例如,SystemTap 脚本可以在运行时查找内核中的符号(函数和变量),通过编写简单的 SystemTap 脚本,如查找所有以sys_开头的函数(可能是系统调用相关函数),就可以发现一些潜在的可跟踪函数

    55810编辑于 2025-07-20
领券