rust-bcc/CHANGELOG.md

275 lines
8.9 KiB
Markdown

# [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 `PerfMap`s.
## 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 `PerfMap`s.
- Support for setting the size of the `PerfMap` ring buffer.
## Changed
- Default bcc version is now 0.16.0
- Some function signatures now return `Result`s 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
- `Kprobe`s and `Uprobe`s are now properly closed on drop. Fixed #44
# [0.0.23] - 2020-08-13
## Added
- Support for `BPF_PERF_ARRAY`.
## Fixed
- `PerfEvent`s 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 `AtomicPtr`s 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.
[Unreleased]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.34...HEAD
[0.0.34]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.33...v0.0.34
[0.0.33]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.32...v0.0.33
[0.0.32]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.31...v0.0.32
[0.0.31]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.30...v0.0.31
[0.0.30]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.29...v0.0.30
[0.0.29]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.28...v0.0.29
[0.0.28]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.27...v0.0.28
[0.0.27]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.26...v0.0.27
[0.0.26]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.25...v0.0.26
[0.0.25]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.24...v0.0.25
[0.0.24]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.23...v0.0.24
[0.0.23]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.22...v0.0.23
[0.0.22]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.21...v0.0.22
[0.0.21]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.20...v0.0.21
[0.0.20]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.19...v0.0.20
[0.0.19]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.18...v0.0.19
[0.0.18]: https://github.com/rust-bpf/rust-bcc/compare/0.0.17...v0.0.18
[0.0.17]: https://github.com/rust-bpf/rust-bcc/compare/0.0.16...0.0.17
[0.0.16]: https://github.com/rust-bpf/rust-bcc/compare/0.0.15...0.0.16
[0.0.15]: https://github.com/rust-bpf/rust-bcc/compare/0.0.14...0.0.15
[0.0.14]: https://github.com/rust-bpf/rust-bcc/compare/0.0.13...0.0.14
[0.0.13]: https://github.com/rust-bpf/rust-bcc/compare/0.0.12...0.0.13
[0.0.12]: https://github.com/rust-bpf/rust-bcc/compare/0.0.11...0.0.12
[0.0.11]: https://github.com/rust-bpf/rust-bcc/compare/0.0.10...0.0.11
[0.0.10]: https://github.com/rust-bpf/rust-bcc/compare/0.0.9...0.0.10
[0.0.9]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.7...0.0.9
[0.0.7]: https://github.com/rust-bpf/rust-bcc/compare/v0.0.6...v0.0.7
[0.0.6]: https://github.com/rust-bpf/rust-bcc/compare/a4e90dff2b47a8e058a933647d1653321fd287ad...v0.0.6
[0.0.5]: https://github.com/rust-bpf/rust-bcc/compare/0a5a09a4ce7f825bcb226f16bfe30abed858bba1...a4e90dff2b47a8e058a933647d1653321fd287ad
[0.0.4]: https://github.com/rust-bpf/rust-bcc/compare/cc0a36fb8f885cdb95e6a5073548b8514948b336...0a5a09a4ce7f825bcb226f16bfe30abed858bba1
[0.0.3]: https://github.com/rust-bpf/rust-bcc/compare/f647dcbc6b3d00f1d7a2e605652ab9c8893a0687...cc0a36fb8f885cdb95e6a5073548b8514948b336
[0.0.2]: https://github.com/rust-bpf/rust-bcc/compare/f7aa684f4da7902104cdbf009738c1ed6288bd13...f647dcbc6b3d00f1d7a2e605652ab9c8893a0687
[0.0.1]: https://github.com/rust-bpf/rust-bcc/tree/f7aa684f4da7902104cdbf009738c1ed6288bd13