New
v0.24.0
Release highlights
- Addition of macros allowing code reuse (unstable).
- Support for named parameters of bpftrace scripts.
- New map function
tseriesfor printing time series graph showing how a value evolved over time (unstable). - Map declarations allowing to specify map type (e.g. array, LRU hash, etc.) and other properties (unstable).
- Range based
forloops. - Boolean literals (
trueandfalse). - Array access with non-constant index.
For more details on these features, including examples how to use them, refer to the Release Notes.
Full changelog
Breaking Changes
- Drop majority of DWARF support. Only uprobe argument parsing remains.
- Removed config option 'symbol_source' - it no longer has any effect
- Rawtracepoints now require kernel BTF
- Ustack and kstack symbols are automatically enhanced with debug info if available
- Error by default if any probe fails to attach
- Require BPF_MAP_TYPE_RINGBUF to be available
- Require kernel uprobe ref counting to be available for USDTs with semaphores
strcontainsandhas_keynow return boolean values instead of 1 and 0- JSON serialization for unsupported and unknown types (e.g.
float) may now usenullnow rather than the empty string - Text mode now emits all non-script generated output (e.g., errors, attached notifications) to
stderrinstead ofstdout
Added
- Add ncpus builtin to get the number of CPUs.
- Use blazesym for user space address symbolization
- Add simple block expressions
- Add map declaration syntax (behind an "unstable" config flag)
- Add license config to specify BPF license
- Rawtracepoints can now use
argsbuiltin and list params - Add ability to specify rawtracepoint modules
- Add 'show_debug_info' config for blazesym
Changed
- kprobe: support verbose mode listing
-pCLI flag now applies to all probes (except BEGIN/END)- Introduce automatic session probes
- Positional params can be used in any part of a probe string
- Add signed type checking for map assignments
- Add signed type checking for map keys
deletenow returns 1 if successful, 0 if not- if
deletefails it will only print a warning if return value is not handled
Fixed
- Fix build failures due to missing location.hh
- Fix 32-bit build failures due to missing cast
- Don't crash if kernel isn't built with PID namespaces
- Allow sized_type idents to be used for field access
- Fix per-cpu map update warning
- Fix probe firing order for fexit and software
- Fix type mismatch error for map assignments
- Parse BTF for implicit kernel modules in kprobe/kretprobe