eBPF

eBPF启动

检查syscall trace

执行下方shell代码:

flag=$(zcat /proc/config.gz | grep TRACEPOINT);key="CONFIG_HAVE_SYSCALL_TRACEPOINTS=y";if [[ $flag == *$key* ]]; then echo "eBPF yes";else echo "eBPF no";fi

如果可用请执行以下代码打开系统调用跟踪调试:

echo 1 > /sys/kernel/debug/tracing/events/raw_syscalls/sys_enter/enable
echo 1 > /sys/kernel/debug/tracing/tracing_on

用完记得关门,就像上厕所要冲一样(不是那个)

echo 0 > /sys/kernel/debug/tracing/events/raw_syscalls/sys_enter/enable
echo 0 > /sys/kernel/debug/tracing/tracing_on

万物之始

打开系统调用跟踪之后,日志会输出到/sys/kernel/debug/tracing/trace里面。

这鸟东西乱七八糟的,建议过滤一下 cat /sys/kernel/debug/tracing/trace_pipe | grep pid

感觉罗里吧嗦的每次用都要整一次太麻烦了!

check_ebpf.sh,下载这个文件,运行一下就能一键开启了。

跟踪调用

https://github.com/SeeFlowerX/stackplz