Skip to content

Releases: bpftrace/bpftrace

v0.21.2

19 Jul 11:07
Compare
Choose a tag to compare

[0.21.2] 2024-07-17

Fixed

  • fix min/max map functions
  • fix segfault for multi-tracepoint probes

Full Changelog: v0.21.1...v0.21.2

v0.21.1

24 Jun 13:43
Compare
Choose a tag to compare

[0.21.1] 2024-06-24

  • Fix include path on loongarch, mips, riscv, and s390

v0.21.0

21 Jun 09:54
Compare
Choose a tag to compare

[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() and path()

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

v0.20.4

21 May 07:15
Compare
Choose a tag to compare

[0.20.4] 2024-05-20

Don't unpack kernel headers or look in tmp

v0.20.3

26 Mar 01:15
Compare
Choose a tag to compare

[0.20.3] 2024-03-25

Fix build on pre-5.16 kernels.

v0.20.2

07 Mar 22:31
Compare
Choose a tag to compare

[0.20.2] 2024-03-07

Fix potential security issue with kheader unpacking.

v0.20.1

29 Jan 22:43
Compare
Choose a tag to compare

[0.20.1] 2024-1-29

Fix build on 32-bit systems.

v0.20.0

23 Jan 11:20
Compare
Choose a tag to compare

[0.20.0] 2024-01-22

Added

  • Add log2 histograms with finer granularity
  • Add a jiffies builtin for advanced usages
  • Emit better errors messages for invalid attachpoints
  • Add support for uprobe_multi link
  • Attach BTF to generated BPF programs
  • Add fentry/fexit aliases for kfunc/kretfunc
  • Add support for uprobe pid targeting
  • New builtin for getting the number of map elements
  • Add more helpful error messages for map operations
  • New config block syntax

Changed

  • Standardize config and env var names

Deprecated

Removed

  • Remove snapcraft support

Fixed

  • Fix JSON output for cgroup_path
  • Fix silent truncation of 64-bit values in hist()
  • utils: use /data/local/tmp as temprary dir on Android
  • Fix uprobe multi probe for targets with wildcards
  • Fix symbolication on for 32-bit userspcae and 64-bit kernel
  • Fix retval for kretfunc/fexit
  • Fix attachment/listing of wildcarded module kfuncs
  • Fix uprobe attachment across container boundary
  • Fix generated BTF for older kernels

Docs

  • Fix one-liner tutorial for systems with BTF

Tools

  • Add PPID field to execsnoop.bt
  • Use strftime instead of elapsed in execsnoop.bt
  • Use strftime instead of elapsed in threadsnoop.bt
  • Increase PID field width and align to the right in threadsnoop.bt
  • Update runqlen.bt to remove runnable_weight field from cfs_rq struct.
  • Update mdflush.bt to use blkdev.h instead of genhd.h for non-BTF builds.
  • Add milliseconds to timestamp and align numbers to the right in killsnoop.bt

v0.19.1

04 Oct 08:23
0e231e3
Compare
Choose a tag to compare

[0.19.1] 2023-10-04

Adds support for LLVM 17.

v0.19.0

19 Sep 10:15
Compare
Choose a tag to compare

[0.19.0] 2023-09-19

Added

  • Rawtracepoint support wildcards and list show
  • Support all iterators
  • Improve working with all probe params (kfunc, uprobe)
  • Support func builtin for k(ret)func probes
  • Support casting int <-> int array
  • Support targeting all running processes for USDTs

Changed

  • Make args a structure (instead of a pointer)
  • Improve user symbol resolution
  • uprobes: make C++ symbol demangling explicit
  • uprobe: improve C++ probes listing

Fixed

  • Fix resolving username for malformed /etc/passwd
  • Fix crashes when maps are concurrently modified
  • Fix alignment of byte arrays inside tuples
  • cmake: fix linking libbfd
  • Allow '+' in attach point path
  • Improve listing and 'probe' builtin for several probe types
  • Allow probe builtin with aliased software/hardware probes
  • Support executing symlinked binaries with -c
  • Add access to CLOCK_MONOTONIC with nsecs(monotonic)
  • iter: Skip structures with '__safe_trusted' suffix
  • Improve detection of unknown typedefs in ClangParser