没有合适的资源?快使用搜索试试~ 我知道了~
内核bpftrace的实现原理
需积分: 5 2 下载量 21 浏览量
2023-08-08
22:39:06
上传
评论
收藏 471KB PDF 举报
温馨提示
试读
9页
内核内核bpftrace的实现原理
资源推荐
资源详情
资源评论
bpftrace 使用与原理
bpftrace 使用命令
# bpftrace -e 'BEGIN { printf("hello"); }'
# bpftrace -e 'tracepoint:syscalls:sys_enter_accept { printf("accept"); }'
# bpftrace -e 'tracepoint:syscalls:sys_enter_accept4 { printf("accept4"); }'
# bpftrace -e 'tracepoint:syscalls:sys_enter_connect { printf("connect"); }'
# bpftrace -e 'tracepoint:syscalls:sys_enter_read { printf("read"); }'
# bpftrace -e 'tracepoint:syscalls:sys_enter_write { printf("write"); }'
# bpftrace -e 'tracepoint:syscalls:sys_enter_close { printf("close"); }'
bpftrace 语法结构
bpftrace 的语法结构是参考 awk 的。
probes /filter/ { action }
probes :事件,tracepoint, kprobe, kretprobe, uprobe。两个特殊事件
BEGIN/END,用于脚本开始和结束处执行
filter :过滤条件,事件触发时,判断条件,例如:/pid == 3245/,表示 pid
为 3245 的进程执行。
action :具体执行的操作,例如:{ printf("close\n");} 打印 close
probes
缩写
类型
描述
t
Tracepoint
内核静态探针
u
usdt
用户态静态定义探针
k
kprobe
内核态动态函数探针
kr
kretprobe
内核态动态函数返回值探针
f
kfunc
基于 BPF 的内核态动态函数探针
fr
kretfunc
基于 BPF 的内核态动态函数返回值探针
u
uprobe
用户态函数探针
ur
uretprobe
用户态函数返回值探针
s
software
内核软件事件
h
hardware
基于硬件计数器的探针
w
watchpoint
基于内存的监测点事件
p
profile
对所有 CPU 进行时间采样
i
interval
周期性报告(从一个 CPU)
iter
遍历跟踪内核对象
BEGIN
bpftrace 启动执行动作
END
bpftrace 退出执行动作
资源评论
qq_23664173
- 粉丝: 9
- 资源: 34
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功