tracexec can be installed on Linux systems and should work in kernels greater than 4.9. (Kernels < 4.9 are untested, but probably works).
The eBPF feature should work on 6.x kernels.
Arch Linux users can install from the official repositories via pacman -S tracexec
.
To install from source, the following dependencies are needed:
- A working rust compiler and
cargo
. libbpf
: if not usingvendored-libbpf
zlib
: if not usingvendored-zlib
libelf
: if not usingvendored-libelf
libseccomp
: Forseccomp-bpf
feature.- If any library vendoring feature is enabled:
build-essential
autopoint
gettext
for Debian based distrosbase-devel
for Arch Linux
clang
for compiling eBPF program.
By default, we dynamically link to libseccomp. In order to statically link to libseccomp,
please set LIBSECCOMP_LINK_TYPE
to static
and set LIBSECCOMP_LIB_PATH
to the path of
the directory containing libseccomp.a
.
To control whether to dynamically link to libbpf, libelf and zlib, consult the next Feature Flags
section.
recommended
: This enables the recommended functionalities of tracexecseccomp-bpf
: Use seccomp to accelerate ptrace operations. (Things are extremely slow if this is turned off.)ebpf
: eBPF backend that doesn't use ptrace and could be used for system wide tracing
ebpf-debug
: Not meant for end users. This flag enables debug logging to/sys/kernel/debug/tracing/trace_pipe
and some debug checks.static
: Statically link libelf, zlib and libbpf.vendored
: Vendoring libelf, zlib and libbpf, impliesstatic
.vendored-libbpf
: Vendoring libbpf and statically link to it.ebpf-no-rcu-kfuncs
: Enable this feature for eBPF backend to work on kernel versions less than6.2
.
By default, we enable the recommended
and vendored-libbpf
features. This means that we are dynamically linking zlib and libelf but statically linking libbpf. This choice is made because zlib and libelf are usually installed on most systems but libbpf is usually not.
To dynamically link to libbpf, turn off default features and enable recommended
feature:
cargo build --release --no-default-features -F recommended
cargo install tracexec --bin tracexec
You can download the binary from the release page