一道思考题所引起动态跟踪 ‘学案’

本文地址:https://www.ebpf.top/post/ftrace_kernel_dynamic 1. 基础知识 1.1 默认编译 1.2 使用 -pg 选项 1.3 使用 -pg 和 -mfentry 选项 1.4 对内核进行验证 2. ftrace 中 kprobe 跟踪机制验证 3. 使用内核模块进行验证 3.1 使用 kallsyms_lookup_name 方式获取 3.2 直接使用内核函数地址(踩坑笔记,可跳过) 4. 使用 gdb + qemu……

阅读全文

eBPF+Ftrace 合璧剑指:no space left on device?

本文地址:https://www.ebpf.top/post/no_space_left_on_devices 1. ”no space left on device“ ??? 2. 问题分析及定位 2.1 初步锁定问题函数 2.2 定位问题根源 2.3 定位问题的根因 3. 代码流程与跟踪流程差异分析 4. 总结 5. 附录部分错误 参考资料 最近在生产环境中遇到……

阅读全文

Ubuntu 21.10 安装调试符号

本文地址:https://www.ebpf.top/post/ubuntu-21-10-dbgsym 1. 背景 2. 手动搜索下载安装 3. 使用第三方源安装 步骤 1:GPG 秘钥导入 步骤 2:添加仓库配置 步骤 3:更新安装包 步骤 4:安装调试符号包 步骤 5: 验证符号包已经成功安装 4. 源码安装及关联 5. 最终调测……

阅读全文

BumbleBee: 如丝般顺滑构建、交付和运行 eBPF 程序

本文地址:https://www.ebpf.top/post/bumblebee 1. 前言 2. 构建和分发 eBPF 工具的挑战 3. BumbleBee 简介 3.1 构建 3.2 发布 3.3 运行 4. 完整体验 4.1 bee 安装 4.2 Bee init 生成 eBPF 程序脚手架 4.3 构建 eBPF 程序 4.4 发布 eBPF 程序 4.5 运行 eBPF 程序 5. 总结 6. 参考资料 1. 前言 不久前,Solo.io 公司在官网博客宣布了开源……

阅读全文

eBPF 与 Go,超能力组合(含视频)

本文地址:https://www.ebpf.top/post/ebpf_and_go 本文为 “Go 夜读” 分享的 “eBPF 与 Go 超能力组合” 的简单文字版本,完整视频可以在 Youtube 和 B 站观看,PPT 下载, 8.7M , Github 地址:DavadDi/bpf_demo B 站 #123 eBPF 与Go,超能力组合【Go 夜读】 .aspect-ratio { position: relative;……

阅读全文

【译】聊聊对 BPF 程序至关重要的 vmlinux.h 文件

本文地址:https://www.ebpf.top/post/intro_vmlinux_h 1.1 前言 eBPF 是一项令人兴奋的强大技术,其允许开发者在 Linux 内核的核心处添加自定义代码功能,并且我们还可以通过编写简单的 C 或 Go 程序与加载到内核中的 eBPF 程序交互,用于加载或读取数据。运行在内核中的 BPF 程序……

阅读全文

揭秘 BPF map 前生今世

本文地址:https://www.ebpf.top/post/map_internal 1. 前言 众所周知,map 可用于内核 BPF 程序和用户应用程序之间实现双向的数据交换, 为 BPF 技术中的重要基础数据结构。 在 BPF 程序中可以通过声明 struct bpf_map_def 结构完成创建,这其实带给我们一种错觉,感觉这和普通的 C 语言变量……

阅读全文