You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
2.2 KiB
46 lines
2.2 KiB
4 years ago
|
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].
|
||
|
|
||
|
[USDT documentation]: ../../doc/tracing.md
|
||
|
|
||
|
|
||
|
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.
|
||
|
|
||
|
[bpftrace]: https://github.com/iovisor/bpftrace
|
||
|
[BPF Compiler Collection (BCC)]: https://github.com/iovisor/bcc
|
||
|
|
||
|
|
||
|
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].
|
||
|
|
||
|
[installing bpftrace]: https://github.com/iovisor/bpftrace/blob/master/INSTALL.md
|
||
|
[installing BCC]: https://github.com/iovisor/bcc/blob/master/INSTALL.md
|
||
|
[bpftrace Reference Guide]: https://github.com/iovisor/bpftrace/blob/master/docs/reference_guide.md
|
||
|
[BCC Reference Guide]: https://github.com/iovisor/bcc/blob/master/docs/reference_guide.md
|
||
|
[bcc Python Developer Tutorial]: https://github.com/iovisor/bcc/blob/master/docs/tutorial_bcc_python_developer.md
|
||
|
|
||
|
## 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.
|
||
|
|
||
|
[Bitcoin Core USDT documentation]: ../../doc/tracing.md#listing-available-tracepoints
|
||
|
|
||
|
**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!**
|