2.2 KiB
Example scripts for User-space, Statically Defined Tracing (USDT)
This directory contains scripts showcasing User-space, Statically Defined Tracing (USDT) support for Bitcoin Core on Linux using. For more information on USDT support in Bitcoin Core see the USDT documentation.
Examples for the two main eBPF front-ends, bpftrace and
BPF Compiler Collection (BCC), with support for USDT, are listed. BCC is used
for complex tools and daemons and bpftrace
is preferred for one-liners and
shorter scripts.
To develop and run bpftrace and BCC scripts you need to install the corresponding packages. See installing bpftrace and installing BCC for more information. For development there exist a bpftrace Reference Guide, a BCC Reference Guide, and a bcc Python Developer Tutorial.
Examples
The bpftrace examples contain a relative path to the bitcoind
binary. By
default, the scripts should be run from the repository-root and assume a
self-compiled bitcoind
binary. The paths in the examples can be changed, for
example, to point to release builds if needed. See the
Bitcoin Core USDT documentation on how to list available tracepoints in your
bitcoind
binary.
WARNING: eBPF programs require root privileges to be loaded into a Linux kernel VM. This means the bpftrace and BCC examples must be executed with root privileges. Make sure to carefully review any scripts that you run with root privileges first!