摘要: 首先,需要安装好 go 插件,插件市场搜索go,选一个即可安装。 然后,需要安装 go 的工具包。在 vscode 中,输入快捷键:command(ctrl) + shift + p,在弹出的窗口中,输入:go:install/Update Tools,回车后,选择所有插件(勾一下全选),点击确认, 阅读全文
posted @ 2021-12-27 19:12 SenberHu 阅读(2588) 评论(0) 推荐(0) 编辑
摘要: 背景: 本文主要解决centos7 4.18内核系统eBPF编译环境搭建 流程: 1.内核升级 关于如何在centos7安装4.18内核,这个网上有大把教程,不再赘述 2.编译套件升级 centos7 默认clang llvm版本较低,不识别-target=bpf命令,因此需要对clang进行升级 阅读全文
posted @ 2021-12-27 19:10 SenberHu 阅读(224) 评论(0) 推荐(0) 编辑
摘要: Perf Buffer常规用法: struct addrinfo //需要上传给应用层的数据结构 { int ai_flags; /* Input flags. */ int ai_family; /* Protocol family for socket. */ int ai_socktype; 阅读全文
posted @ 2021-12-27 17:30 SenberHu 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 前段时间编译bpf c文件,都是用的bpf2go这个go包,这个包虽然很方便,但是指定参数比较困难, 学习到tracee falco这种大型项目都是通过makefile直接编译bpf代码,因此打算自己写Makefile clang -D__KERNEL__ -D__ASM_SYSREG_H \ -D 阅读全文
posted @ 2021-12-27 15:37 SenberHu 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 0x1:基本概念 当使用tracepoint的时候,函数参数如何确认? cat /sys/kernel/debug/tracing/events/syscalls/xxx/format. xxx为要跟踪的函数,在这里有函数参数定义。 2. 0x2:注意事项 写结构体的时候一定要注意内存对齐,防止被编 阅读全文
posted @ 2021-12-27 14:13 SenberHu 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 0x1:应用层流程 基于Linux kernel source v5.13 1.加载bpf.o文件并处理elf section信息 1.int bpf_object__open(char *path) //参数是bpf.o文件路径 -- __bpf_object__open(const char * 阅读全文
posted @ 2021-12-27 10:27 SenberHu 阅读(755) 评论(0) 推荐(0) 编辑