首页 > TAG信息列表 > kprobe
Rust如何开发eBPF应用(一)?
前言 eBPF是一项革命性的技术,可以在Linux内核中运行沙盒程序,而无需重新编译内核或加载内核模块。它能够在许多内核 hook 点安全地执行字节码,主要应用在云原生网络、安全、跟踪监控等方面。 eBPF 基金会 (https://ebpf.io) 是一个为 eBPF 技术而创建的非盈利性组织,隶属于 Linux 基---Ftrace---
Ftrace功能 function_profile_enabled跟踪函数的profilekprobe_events 创建event并跟踪,见kprobe Kprobe 实现文件 trace_kprobe.c 主要参考函数为 __trace_kprobe_create arm64的实现时通过将原指令替换为BRK指令实现。 echo 'p task_tick_fair' > kprobe_eventsKprobe的使用方法
Kprobe的使用方法 /* For each probe you need to allocate a kprobe structure */ static struct kprobe kp = { .symbol_name = "do_fork", }; static int __init kprobe_init(void) { int ret; kp.pre_handler = handler_pre; kp.post_handle宋宝华:用eBPF/bcc分析系统性能的一个简单案例
原创 宋宝华 Linux阅码场 2019-12-25 bcc是eBPF的一种前端,当然这个前端特别地简单好用。可以直接在python里面嵌入通过C语言写的BPF程序,并帮忙产生BPF bytecode和load进入kernel挂载kprobe、tracepoints等上面执行。之后,还可以从python取出来C函数里面导出的maps数据以及per-eveLinux kernel 使用 kprobe
1 #include <linux/module.h> 2 #include <linux/file.h> 3 #include <linux/uaccess.h> 4 #include <linux/kallsyms.h> 5 #include <linux/kprobes.h> 6 7 // 8 // long do_sys_open(int dfd, const char __user *filename, int flaLinux内核调试技术——kprobe使用与实现 (一二三四五六)
https://cloud.tencent.com/developer/article/1463419 一 https://cloud.tencent.com/developer/article/1463437 二 https://cloud.tencent.com/developer/article/1463587 三 https://cloud.tencent.com/developer/article/1463357 四 https://cloud.tencent.com/develo为什么_do_fork()的kretprobe只返回一次?
当我用fork编写一个小脚本时,syscall返回两次进程(每个进程一次): #include <stdio.h> #include <unistd.h> int main(int argc, char *argv[]) { int pid = fork(); if (pid == 0) { // child } else if (pid > 0) { // parent } } 如果我使用