rust-bcc/CHANGELOG.md

8.9 KiB

Unreleased

0.0.34 - 2023-10-25

Changed

  • Update readme to indicate that crate is not actively maintained and that users should consider libbpf-rs instead

Fixed

  • Bugfix (byte ordering) in the tcpretrans example

0.0.33 - 2022-09-09

Added

  • Support to dump BPF program instructions. (#181)
  • Support for attaching BPF programs to sockets. (#191)

Fixed

  • Removes potential segfault in safe code by making Table::new() inaccessible outside of this crate. (#192)
  • Various fixes to support running in CI environment. (#194)

0.0.32 - 2021-11-23

Added

  • Adds support for bcc 0.19.0
  • Adds support for bcc 0.20.0
  • Adds support for bcc 0.21.0
  • Adds support for bcc 0.22.0
  • Adds support for bcc 0.23.0

Changed

  • Default bcc version is now 0.23.0

0.0.31 - 2021-03-29

Fixed

  • Fixed a few examples to use unaligned pointer reads.

Added

  • Adds support for bcc 0.18.0
  • Adds raw perf event support.
  • Adds User Statically-Defined Tracing (USDT) support.

0.0.30 - 2020-11-23

Fixed

  • biosnoop and opensnoop examples now use the new builder pattern for creating PerfMaps.

Added

  • Support for bcc 0.17.0
  • Now supporting BPF RingBuf data structures.

Changed

  • Default bcc version is now 0.17.0
  • Marked init_perf_map function as deprecated. PerfMapBuilder should be used instead.

0.0.29 - 2020-10-20

Fixed

  • get_syscall_fnname now returns proper prefix.

0.0.28 - 2020-10-06

Added

  • Adds BPF debug level to remaining load methods.

Changed

  • Setting the debug level on the BPFBuilder no-longer returns a result, as it cannot fail. Improves ergonomics.

0.0.27 - 2020-10-01

Added

  • Support for loading BPF programs with load_func(), which enables BPF tail-calls.
  • Support for setting BPF debug level.
  • Support for XDP programs, used for packet processing.

0.0.26 - 2020-09-23

Fixed

  • Resolved collisions between uprobes and uretprobes when the same symbol is used for each.

0.0.25 - 2020-09-15

Added

  • Support for bcc 0.16.0
  • Builder-pattern construction of BPF struct.
  • Support for passing CFLAGS to BPF module creation.
  • Builder-pattern construction of PerfMaps.
  • Support for setting the size of the PerfMap ring buffer.

Changed

  • Default bcc version is now 0.16.0
  • Some function signatures now return Results to enable better error handling and reduce internal unwrap() usage.
  • Some error types now include additional messaging.

Fixed

  • Builds on aarch64 by correcting the internal representation of char types.

0.0.24 - 2020-08-20

Fixed

  • Kprobes and Uprobes are now properly closed on drop. Fixed #44

0.0.23 - 2020-08-13

Added

  • Support for BPF_PERF_ARRAY.

Fixed

  • PerfEvents are not properly closed on drop.
  • BPF Table now returns the value for the first entry instead of always returning zero for the first entry.

0.0.22 - 2020-08-03

Added

  • Support for attaching probes to perf events and related examples.
  • Implementation of get_syscall_fnname to support in resolving system calls to function names.

Changed

  • Converted probe construction to a builder-style pattern with new public types to initialize and attach probes.
  • Changed bcc::core to now be internal only. Public interface to core functionality is now in the root of the module.

0.0.21 - 2020-07-24

Fixed

  • Iterating on an empty table would improperly return an entry (#100)
  • Fixed some issues with static linking by pulling in a newer version of bcc-sys

Changed

  • LLVM 9 is now the default expected toolchain for static builds

0.0.20 - 2020-07-06

Added

  • Added support for bcc 0.15.0

Changed

  • Changed default bcc version to 0.15.0

0.0.19 - 2020-07-02

Added

  • Added support for bcc 0.14.0

Changed

  • Changed default bcc version to 0.14.0

0.0.18 - 2020-06-29

Changed

  • Changed error handling to use thiserror instead of failure

0.0.17 - 2020-03-20

Added

  • Added support for bcc 0.13.0

Changed

  • Changed default bcc version to 0.13.0
  • Updated dependencies

0.0.16 - 2020-02-03

Added

  • Makes BPF struct both Send and Sync by using AtomicPtrs instead of bare pointers

0.0.15 - 2020-01-10

Added

  • Added support for bcc 0.12.0, making it the new default version

0.0.14 - 2019-12-10

Added

  • Added support for bcc 0.11.0, making it the new default version
  • Added support for raw tracepoints

0.0.13 - 2019-10-07

Added

  • Added support to pull multiple perf buffers at once

0.0.12 - 2019-09-16

Added

  • Added biosnoop example which traces block device IO and is used to test the get_kprobe_functions() function in CI

Fixed

  • Use explicit dyn on trait objects
  • Fixed segfault caused by passing non-null buffer to bpf_prog_load()

0.0.11 - 2019-09-07

Added

  • Added runqlat example to get the distribution of runqueue latency and exercise kprobes during CI
  • Added get_kprobe_functions() which exists in the Python API

Fixed

  • Fixed the 'oh no' bug which would cause panic when using rust-bcc for perf events on some systems. Particularly, this would trigger if some CPUs were offline

0.0.10 - 2019-07-08

Added

  • Added bcc 0.10.0 support
  • Added signal handler to examples for SIGINT/SIGTERM so that Drop implementations are invoked on ctrl-c

0.0.9 - 2019-05-22

Fixed

  • Fixed an issue with static linking by updating the bcc-sys dependency

0.0.7 - 2019-05-14

Added

  • Added bcc 0.9.0 support

0.0.6 - 2019-03-15

Added

  • Added support for multiple bcc versions via feature flags
  • Added support for bcc versions 0.5.0, 0.6.0, 0.6.1, 0.7.0, 0.8.0
  • Added static linking via feature flag

0.0.5 - 2019-02-17

Added

  • Updates to Rust 2018 edition

0.0.4 - 2018-05-07

Added

  • Added support for tracepoints
  • Added softirqs example using tracepoints to track time spent in each softirq handler

Fixed

  • Fixed missing LICENSE file
  • Fixed hardcoded CPU IDs

0.0.3 - 2018-02-08

Fixed

  • Fixed safety issues around perf closure API
  • Improved error messages for probe attach failures

0.0.2 - 2018-02-06

Fixed

  • Fixed unnecessary clone in perf event callback
  • Grab bag of idiomatic rust cleanup

0.0.1 - 2018-02-05

Initial release.