[0.21.0] 2024-06-21
Added
- Add
lazy_symbolication
config option - Add ability to list all probes in a program
- Add ability to call print() with indexed maps to print single map values
- Add LLVM 18 support
- Add ability to call delete() with multiple arguments
- Add for-each loops for iterating over map elements
- Add optional systemd support
- Add ability to attach uprobes to inlined functions
- Enable count, sum, min, and max map reads in kernel space (implicit casting)
- Add config option for handling missing probes
Changed
- Better error message for args in mixed probes
- Reproducible Builds: Do not store timestamps in gzip header
- Improve DWARF support, using liblldb instead of libdw
- Use new hash function to reduce collisions when aggregating on stack traces
- Disable func builtin for kretprobes and uretprobes when
get_func_ip
feature is not available - Move error printing from debug to verbose mode
- Better error message when libbpf is too old
- Allow trailing semicolons and empty blocks in config syntax
- Allow attaching to
spin_lock
functions with mitigations to prevent deadlocks - Remove length limitations for strings coming out of
str()
andpath()
Deprecated
- Deprecate
sarg
builtin
Removed
Fixed
- Fix ability to interrupt bpftrace during probe attach
- Fix field resolution on structs with anon union as first field
- Fix alignment of atomic map counter update
- Fix func builtin for kretprobes and uretprobes for kernels with working
get_func_ip
feature - Fix ustack missing the second-from-top stack frame in uprobes
- Fix storing strings of differing lengths in a variable
- Fix field resolution for structs in arrays
- Fix error in dereferencing kernel double pointers
- Fix variable corruption when used as map key
- Fix crash when assigning a record type to a map
- Fix type resolution for pointers with
BTF_KIND_TYPE_TAG
- Fix attachment of probes attaching to wildcarded and non-wildcarded kprobes
Security
- Don't unpack kernel headers or look in tmp
Docs
Tools
- Ignore warnings for missing probes