SystemTap笔记02 stap的编译运行

SystemTap笔记02 stap的编译运行1 构建工具模块构建指定内核版本的模块 这个时候可移植 stap p4 rkernel versionscrip mmodule name parse elaborate translate c compile ko runstap g F DSTP NO OVERLOAD DMAXMAPENTRI DMAXACTION p4 r uname r working dir stpfile syscall st

1.构建工具模块

构建指定内核版本的模块,这个时候可移植。

stap -p4 -r kernel_version script -m module_name //parse, elaborate, translate(.c), compile(.ko), run 
stap -g -F -DSTP_NO_OVERLOAD -DMAXMAPENTRIES= -DMAXACTION= -p4 -r $(uname -r) "+working_dir+"stpfile/syscall.stp "+working_dir+"kofile -m 

2.运行构建的模块

将其加载到运行的内核中执行

staprun module_name.ko 
staprun -vv "+working_dir+"kofile/ksyscallmo.ko 

stap的参数

https://sourceware.org/systemtap/SystemTap_Beginners_Guide/using-usage.html

-v[v?]? 展示详细的信息,想查运行中的脚本出错情况用-vvv -e #把字符串的话当脚本执行 stap -e 'probe vfs.read {exit()}' -v 相当于 echo "probe timer.s(1) {exit()}" | stap -v - -o file_name #标准输出输出的奥file_name这个文件 -S size,count 将输出文件的最大大小限制为 MB 大小和要计数的最大存储文件数。此选项为 SystemTap 实现 logrotate 操作,并且生成的文件名具有序列号后缀。 -x process_id Sets the SystemTap handler function target() to the specified process ID. -c 'command' 给脚本添加参数 例:stap script_name -c command 相当于 script -x processID -F 使用 SystemTap 的飞行记录器模式脚本后台运行。 

SystemTap的飞行记录器模式

SystemTap的飞行记录器模式可以长时间运行SystemTap脚本,只需专注于最近的输出。飞行记录器模式限制生成的输出量。

飞行记录仪模式有两种变体。在这两种情况下,SystemTap 脚本都作为后台进程运行

  • 内存模式
    stap -F sleep.stp# 内存模式下飞行 -s 参数设置缓冲区大小,默认1MB -------output-------- Disconnecting from systemtap module. To reconnect, type "staprun -A stap_9a0b1e90e8167d9f37a4c8a31dba65e_7547" 
  • 文件模式。stap会自动给文件加后缀,后缀越大,表示文件越新。
stap -F -o /tmp/pfaults.log -S 1,2 pfaults.stp# 加了输出到文件,所以是文件模式下飞行 #-S参数可以控制输出的文件大小和文件数量比如上面的命令表示生成的输出文件名为 /tmp/pfaults.log.[0-9]+,每个文件最大1MB,只保留最新的两个文件。 

以上命令会打印出后台进程id号。

[root@centos7 test]# stap -F sleep.stp -o ./result/output.log -S 1,2 7044 [root@centos7 test]# ps -ef|grep 7044 root 7044 1 0 11:14 ? 00:00:00 /usr/libexec/systemtap/stapio -o ./result/output.log -D -R -S 1,2 stap_f21be02d803bce06b9fd8c4448c2396_7042 -F3 
  • 终止执行:
kill -s SIGTERM 7044 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230027.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午3:18
下一篇 2026年3月16日 下午3:18


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号