使用 BCC 开发 eBPF 程序

使用 BCC 开发 eBPF 程序,可以把前面讲到的五步简化为下面的三步。

第一步:使用 C 开发一个 eBPF 程序

新建一个 hello.c  文件,并输入下面的内容:

int hello_world(void *ctx)
{
    bpf_trace_printk("Hello, World!");
    return 0;
}

第二步:使用 Python 和 BCC 库开发一个用户态程序

接下来,创建一个 hello.py 文件,并输入下面的内容:

#!/usr/bin/env python3
# 1) import bcc library
from bcc import BPF

# 2) load BPF program
b = BPF(src_file="hello.c")
# 3) attach kprobe
b.attach_kprobe(event="do_sys_openat2", fn_name="hello_world")
# 4) read and print /sys/kernel/debug/tracing/trace_pipe
b.trace_print()

第三步:执行 eBPF 程序

sudo python3 hello.py