High-level tracing language for Linux
bpftrace is a general purpose tracing tool and language for Linux. It leverages [eBPF](https://ebpf.io/what-is-ebpf/) to provide powerful, efficient tracing capabilities with minimal overhead. bpftrace uses [LLVM](https://llvm.org/) as a compiler backend, and [libbpf](https://github.com/libbpf/libbpf) for interacting with the Linux BPF subsystem, including kernel dynamic tracing ([kprobes](https://docs.kernel.org/trace/kprobes.html), [hardware and software perf events](https://docs.ebpf.io/linux/program-type/BPF_PROG_TYPE_PERF_EVENT/)), user-level dynamic tracing ([USDT](https://docs.ebpf.io/linux/concepts/usdt/), [uprobes](https://docs.ebpf.io/linux/program-type/BPF_PROG_TYPE_KPROBE/)), tracepoints ([regular](https://docs.ebpf.io/linux/program-type/BPF_PROG_TYPE_TRACEPOINT/), [raw](https://docs.ebpf.io/linux/program-type/BPF_PROG_TYPE_RAW_TRACEPOINT/)), and [more](https://docs.ebpf.io/linux/program-type/BPF_PROG_TYPE_TRACING/). The bpftrace language is inspired by awk, C, and predecessor tracers such as DTrace and SystemTap. Visit **[bpftrace.org](https://bpftrace.org/)** for [tutorials](https://bpftrace.org/tutorial-one-liners), [documentation](https://bpftrace.org/docs), and [labs](https://bpftrace.org/hol/intro)! This respository also contains some [canonical tools](tools/README.md). For migrating from older versions, see the [migration guide](docs/migration_guide.md). ## Quick Start Get started with bpftrace in just a few minutes! To build from source, see the [development guide](docs/developers.md#building). However, you can often install it using your distribution's [package manager](https://pkgs.org/search/?q=bpftrace). > [!IMPORTANT] > When using a distribution package, be sure to verify `bpftrace --version` when referencing documentation.
No open issues yet, or sync has not completed.