useful-systemtap-scripts

[uevents](https://sourceware.org/systemtap/SystemTap_Beginners_Guide/userspace-probing.html#uevents0

1.stp文件结构

script的一次运行称为一个session。一旦 SystemTap 会话终止,探测将被禁用,内核模块将被卸载。

event

命名事件,并给它一个处理程序。脚本运行时,stap监控事件,一旦事件发生,内核就将处理程序作为快速子例程执行,然后恢复(类似异常)

事件类型:

entering/exiting a function, timer expiration, session termination

handler

Probe

Probe=event+handler;Stp脚本可以有很多个probe;

probe中的语句间有无分隔符均可。

2.event

一个系统的内核模块可以在/lib/modules/kernel_version看到

同步事件:

进程在内核代码的特定位置执行了特定代码时触发。

module("module").function("function")

syscall.*system_call*中有一个name成员,标识特定系统调用的名字。

异步事件

不与特定指令或者代码中的位置绑定。如counters,timers等等。

事件begin,end

  • timer.ms(*milliseconds*)
  • timer.us(*microseconds*)
  • timer.ns(*nanoseconds*)
  • timer.hz(*hertz*)
  • timer.jiffies(*jiffies*)
probe timer.s(1)
{printf("hello world\n")
}//每1s执行一次打印,stap -e '执行该事件'

stp查看支持的事件

man stapprobes

3.变量和函数

  • 变量不用指定类型,probe可以和python一样自己获取变量类型。

  • 变量生命周期,默认为probe本地,加上global变为全局变量。

stap -e 'global count_jiffies, count_ms
probe timer.jiffies(100) { count_jiffies ++ }
probe timer.ms(100) { count_ms ++ }
probe timer.ms(12345)
{hz=(1000*count_jiffies) / count_msprintf ("jiffies:ms ratio %d:%d => CONFIG_HZ=%d\n",count_jiffies, count_ms, hz)exit ()
}'
  • hz 内部变量 定义每秒产生timer interrupts的次数

SystemTap笔记03 stap的event和handler相关推荐

  1. ESP32 单片机学习笔记 - 03 - MCPWM脉冲输出/PCNT脉冲计数

    ESP32 单片机学习笔记 - 03 - MCPWM脉冲输出/PCNT脉冲计数 前言,继续上一篇的内容.因为上一篇刚好实验了iic和spi,形成一对.接下来讲pwm另起一篇. 目录 ESP32 单片机 ...

  2. contiki学习笔记03

    contiki学习笔记03 contiki是基于事件型驱动的操作系统,它传递事件的方式有两种,同步和异步. process_post_synch函数是同步,调用它可以马上执行相关的线程:process ...

  3. JavaEE——Spring学习笔记03【AOP开发】

    JavaEE--Spring学习笔记01[Ioc开发的模式] JavaEE--Spring学习笔记02[Spring和Mybatis的整合] JavaEE--Spring学习笔记03[AOP开发] J ...

  4. 构建之法读书笔记03

    构建之法读书笔记03 阅读之前:   我发现这本书我越往后读越是后期软件方面的东西,好多东西因为我之前没有接触过软件,所以都变得晦涩难懂,但是大体意思我也应该明白.我知道微软但是不曾设想过他的工作体系 ...

  5. Git 的安装与初次使用 —— Git 学习笔记 03

    Git 的安装与初次使用 -- Git 学习笔记 03 Git 的安装与初次使用 -- Git 学习笔记 03 安装 Git 在 Linux 上安装 在 Windows 上安装 初次运行 Git 前的 ...

  6. SpringMVC-学习笔记03【SpringMVC常用注解】

    Java后端 学习路线 笔记汇总表[黑马程序员] SpringMVC-学习笔记01[SpringMVC概述及入门案例][day01] SpringMVC-学习笔记02[参数绑定及自定义类型转换] Sp ...

  7. Spring-学习笔记03【Spring的IOC和DI】

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

  8. MyBatis-学习笔记03【03.自定义Mybatis框架】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  9. JavaWeb黑马旅游网-学习笔记03【登陆和退出功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  10. Maven-学习笔记03【基础-Maven标准目录结构和常用命令】

    Java后端 学习路线 笔记汇总表[黑马程序员] 黑马程序员(腾讯微云)Maven基础讲义.pdf Maven-学习笔记01[基础-Maven基本概念] Maven-学习笔记02[基础-Maven的安 ...

最新文章

  1. python安装后pip用不了 cmd命令窗口提示:Did not provide a command
  2. 南达科他州立大学计算机科学,关于举行南达科他州立大学Srinivas Janaswamy博士学术报告的通知...
  3. asp.net core系列 59 Ocelot 构建基础项目示例
  4. $.ajax 跨域请求 Web Api
  5. 解决在Win2008下IIS7不显验证码的问题
  6. Mapreduce中maptask过程详解
  7. Python游戏编程入门,让你秒变电脑大神!
  8. thinkphp 连接sql server
  9. tensorflow保存数据为.pb格式和加载.pb文件(转)
  10. terminal显示mysql_mac如何在terminal终端中操作mysql
  11. 【数据库】云数据库rds是什么意思?有什么优势?
  12. c语言的字符串不是存放,在C语言中,字符串不存放在一个变量中,而是存放在一个中...
  13. 2021潞河中学内高班高考成绩查询,潞河中学2018小升初入学攻略(含入学途径、中高考成绩)...
  14. 主动外观模型(AAM)
  15. html样式表是不是css,css样式是什么
  16. 【转】实现远程开机(电脑)的各种方法总结
  17. 微信小程序之兼容问题
  18. [乐意黎原创]PHP启用session后抛 session_start(): open(/var/lib/php/session/sess_... 的解决办法
  19. 【多线程并发编程】十一 生产者和消费者问题(面试必问)
  20. 安全设计规范_山西火灾原因查明:安全检查不到位?设计规范问题为何要统归为安全问题?...

热门文章

  1. IT行业含金量较高的证书汇总
  2. 诺基亚如何利用计算机上网,诺基亚E63的WIFI上网功能全教程
  3. 8uftp目标计算机拒接,8UFTP连接FTP时空白的解决办法
  4. arduino nano与Ps2手柄通过任意IO口控制舵机旋转至任意角度
  5. 现场抽奖小程序_抽奖小程序助手转盘活动微信抽奖系统
  6. chromeos java安装_试用额外硬件驱动和完整JAVA支持的ChromeOS
  7. DTcmsV4.0分析学习——(2)系统框架
  8. 修改服务器linux的yum源为阿里源yum源
  9. 用KMS激活了office2016之后为什么进入的时候还是提示需激活解决方案:
  10. 海思3516A 运行mp4box工具,移植gpac 0.4.0