bpftrace/bpftrace

GitHub: bpftrace/bpftrace

bpftrace 是一个基于 eBPF 的 Linux 高级跟踪工具,用于高效、低开销的系统跟踪和调试。

Stars: 10136 | Forks: 1464

bpftrace

[![构建状态](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/bdfff72908143224.svg)](https://github.com/bpftrace/bpftrace/actions/workflows/ci.yml) [![最新版本](https://img.shields.io/github/v/release/bpftrace/bpftrace)](https://github.com/bpftrace/bpftrace/releases/latest) [![许可证](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/bpftrace/bpftrace/blob/master/LICENSE) bpftrace 是一个适用于 Linux 的通用跟踪工具和语言。它利用 [eBPF](https://ebpf.io/what-is-ebpf/) 提供强大、高效的跟踪能力,且开销极小。 bpftrace 使用 [LLVM](https://llvm.org/) 作为编译器后端,并使用 [libbpf](https://github.com/libbpf/libbpf) 与 Linux BPF 子系统交互,支持内核动态跟踪([kprobes](https://docs.kernel.org/trace/kprobes.html)、[硬件和软件 perf 事件](https://docs.ebpf.io/linux/program-type/BPF_PROG_TYPE_PERF_EVENT/))、用户级动态跟踪([USDT](https://docs.ebpf.io/linux/concepts/usdt/)、[uprobes](https://docs.ebpf.io/linux/program-type/BPF_PROG_TYPE_KPROBE/))、跟踪点([常规](https://docs.ebpf.io/linux/program-type/BPF_PROG_TYPE_TRACEPOINT/)、[原始](https://docs.ebpf.io/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT/))以及[更多功能](https://docs.ebpf.io/linux/program-type/BPF_PROG_TYPE_TRACING/)。 bpftrace 语言的灵感来源于 awk、C 以及早期的跟踪器,如 DTrace 和 SystemTap。 访问 **[bpftrace.org](https://bpftrace.org/)** 获取[教程](https://bpftrace.org/tutorial-one-liners)、[文档](https://bpftrace.org/docs)和[实验](https://bpftrace.org/hol/intro)! 此仓库还包含一些[规范工具](tools/README.md)。 有关从旧版本迁移,请参阅[迁移指南](docs/migration_guide.md)。 ## 快速开始 只需几分钟即可开始使用 bpftrace!要从源代码构建,请参阅[开发指南](docs/developers.md#building)。但是,通常可以通过您发行版的[软件包管理器](https://pkgs.org/search/?q=bpftrace)安装它。
Distributions Command
Ubuntu 22.04 Ubuntu 24.04 Ubuntu 25.04 Ubuntu 25.10 Debian 13 Debian 14 Debian Unstable
sudo apt install bpftrace

    
Fedora 42 Fedora 43 Fedora Rawhide CentOS 9 CentOS 10
sudo dnf install bpftrace
Alpine 3.21 Alpine 3.22 Alpine Edge
sudo apk add bpftrace
Arch Linux
sudo pacman -S bpftrace
Gentoo
sudo emerge -av bpftrace
nixpkgs
nix-shell -p bpftrace
openSUSE Tumbleweed
sudo zypper install bpftrace
AppImage (nightly)
declare -A suffixes=([x86_64]="X64" [amd64]="AMD64");

declare prefix="bpftrace/bpftrace/workflows/binary/master/bpftrace";

declare url="https://nightly.link/${prefix}-${suffixes[$(uname -m)]}.zip";

curl -L -o bpftrace.zip "${url}" && unzip bpftrace.zip
## 贡献 详情请参阅我们的[贡献指南](CONTRIBUTING.md)以了解如何参与贡献,以及我们的[治理文档](GOVERNANCE.md)以了解项目如何运作。 如果您有使用 bpftrace 构建的工具并希望提交,请向 [user-tools 仓库](https://github.com/bpftrace/user-tools/blob/master/CONTRIBUTING.md)提交贡献。 ## 构建 有关完整的构建说明(Nix 或发行版原生方式),请参阅 [开发指南](docs/developers.md#building)。 ## 社区与支持 bpftrace 由一个由贡献者、用户和组织组成的多元化社区构建和维护,他们依赖它进行生产环境的跟踪和调试。 **获取帮助或参与其中:** - 💬 [GitHub 讨论区](https://github.com/bpftrace/bpftrace/discussions) - 提出问题 - 🐛 [问题追踪器](https://github.com/bpftrace/bpftrace/issues) - 报告错误和请求新功能 - 📅 [月度办公时间](https://docs.google.com/document/d/1nt010RfL4s4gydhCPSJ-Z5mnFMFuD4NrcpVmUcyvu2E/edit?usp=sharing) - 对所有人开放 - 💬 [Discord](https://discord.gg/3tnjU2fTWr) - 对所有人开放(如果链接失效,请写信给 #4916)
标签:CSV输出, Docker镜像, eBPF语言, kprobes, libbpf, Linux追踪工具, LLVM, perf事件, tracepoints, uprobes, USDT, 事件追踪, 低开销监控, 内核追踪, 动态追踪, 工具链, 性能分析, 用户空间追踪, 系统调用追踪, 追踪框架, 高级追踪语言