1.构建工具模块

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

stap -p4 -r kernel_version script -m module_name
//parse, elaborate, translate(.c), compile(.ko), run
stap -g -F -DSTP_NO_OVERLOAD -DMAXMAPENTRIES=102400 -DMAXACTION=102400 -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_idSets 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

SystemTap笔记02 stap的编译运行相关推荐

  1. 全志v3s linux 编译,全志 V3S 编译运行 xboot 笔记

    全志 V3S 编译运行 xboot 笔记 目录 1. 目的 2. 环境准备 3. 下载 3.1 fel 模式进入 3.2 sunxi-fel 工具的使用 3.3 烧录 4. 串口打印 5. 总结 1. ...

  2. 全志v3s linux 编译,全志V3S 编译运行xboot笔记

    全志V3S 编译运行xboot笔记 [toc] 1.目的 现在手上有一块V3S的板子,想将其用起来.现在来记录一下这个过程.记录一下荔枝派zero的使用流程. 2.环境准备 首先需要clone代码 g ...

  3. [笔记]用VS2010编译运行项目时报“LINK : fatal error LNK1104:...

    为什么80%的码农都做不了架构师?>>>    参考:http://hi.baidu.com/%CE%C2%BF%AA%D4%B4/blog/item/e92c0e82c9ae4ec ...

  4. Java笔记2:使用命令行编译运行“Helloworld”

    //我用的是Windows10,eclipse MARS 版本,JAVA SE1.8 版本 //新建txt文档,Hello.txt //重命名文档,将文档重命名为Hello.java //Win+R, ...

  5. Spring-学习笔记02【程序间耦合】

    Java后端 学习路线 笔记汇总表[黑马程序员] Spring-学习笔记01[Spring框架简介][day01] Spring-学习笔记02[程序间耦合] Spring-学习笔记03[Spring的 ...

  6. Unity 入门笔记 - 02 - 各种动画

    Unity 入门笔记 - 02 - 各种动画 前言:上一篇笔记记录了从零开始安装软件,到搭建最基本的游戏场景和角色,最后开始接触了脚本代码.对unity游戏引擎的工作方式有了基本的认知.接下来开始进一 ...

  7. 侯捷C++课程笔记02: 面向对象高级编程(下)

    本笔记根据侯捷老师的课程整理而来:C++面向对象高级编程(下) pdf版本笔记的下载地址: 笔记02_面向对象高级编程(下),排版更美观一点(访问密码:3834) 侯捷C++课程笔记02: 面向对象高 ...

  8. C语言从零学习笔记02

    Day02 目录 C语言从零学习笔记02 一.初识C语言 二.第一个C语言程序 三.代码上传Gitee 四.数据类型 这只是一篇新手个人学习笔记,其中不可避免出现理解不深不透,仅以督促自身及记录,如有 ...

  9. MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02

    MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02 6. 锁 ​ 人们认为行级锁总会增加开销.实际上,只有当实现本身会增加开销时,行级锁才会增加开销.InnoDB 存储引擎不需要锁升级,因 ...

  10. 使用sublime编译运行C程序

    原 使用sublime编译运行C程序 2017年04月13日 17:09:16 DragonFreedom 阅读数 13177 1.打开sublime,找到顶部工具(Tool)菜单->编译系统( ...

最新文章

  1. 分析了10万起诈骗案例,大数据告诉你:2018年骗子更狡猾了
  2. video标签poster属性在安卓微信中不生效问题解决
  3. Daily scrum[2013.11.28]
  4. border-边框的形状
  5. android 覆盖安装问题
  6. 经济寒冬?毕业生找不到好工作?来看看这个。
  7. C语言字符输出格式化
  8. java单线程上锁_关于Java多线程编程锁优化的深入学习
  9. 将jpg文件当作php文件来解析,解析漏洞
  10. 中国历史上最牛气的十大豪言壮语
  11. 对象存储 OSS > 产品简介 > 什么是对象存储OSS
  12. 【2015 SACC】 架构之手机淘宝性能优化全记录
  13. 工业机器人行业应用-新能源汽车
  14. 解决 tesserocr 无法安装问题!
  15. C# Socket/TCPClient断线重连/不断重连的简单思路+代码,海量注释
  16. 一文读懂自动驾驶传感器之激光雷达、毫米波雷达、超声波雷达及摄像头
  17. 码农与程序员,就好比哈士奇与狼
  18. #PRBS# PRBS7高速串行总线的常用测试码型
  19. 哈工大软件学院编译原理实验3——语义分析
  20. 阿里员工内部常用免费工具包

热门文章

  1. 简单使用触发器(详细) SQL触发器的使用及语法
  2. 《每日一荐月刊》2019-11
  3. 【论文泛读08】基于深度时空残差网络的城市人群流动预测
  4. 深度时空3D卷积神经网络用于交通预测(文末附数据链接)
  5. Hypergraph Neural Networks超图神经网络
  6. 主控芯片测试软件,主控芯片检测工具MyDiskTest的使用教程的详解【图文】
  7. 手把手教你制作一块Linux开发板(基于Planck-pi)
  8. 盘点五款值得收藏的 Linux 开发板
  9. 三种非对称加密算法总结
  10. KMS模拟器VLMCSD再次更新