All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1500.4 (2026-05-14)
- Add support for framehop as unwinder (#267)
- Add support for perfmap debug info format (#267)
- Use spin-rs to replace parking lot to avoid potential deadlock (#268)
- Bump version of protobuf to 3.7.2 (#264)
- Increase MSRV to 1.74.0 (#264)
- Fix the alignment of the collector and validate function (#255)
- Bump the MSRV to 1.66.0 (#255)
- Upgrade
prost,prost-derive,prost-buildto 0.12 (#223)
- Handle potentially unaligned frame pointer (#217)
- Fix the register field name according to libc (#218)
- Support building
pprof-rsforandroidtarget (#202) - Support building
pprof-rsforfreebsdtarget (#213)
- Upgrade
criterionto 0.5 (#212) - Bump the MSRV to 1.64.0 (#204)
- Hide
perf_signal_handlerframes on macOS (#207)
- Support RISC-V architecture (#169)
- Support LoongArch64 architecture (#174)
- Use a globally shared pipe to validate memory to avoid FD leak (#198)
- Upgrade prost 0.11 (#166)
- Upgrade criterion from 0.3 to 0.4 (#163)
- Restart syscalls interuppted by SIGPROF when possible (#167)
- Only do per-frame-blocklist-check when frame-pointer is enabled (#172)
- Update
MAX_DEPTHto 128 (#159)
- Fixed clippy warnnings and ignore prost mod (#160)
- Remove
backtrace-rsfeature, as the default choice when not specified (#130)
- Add
sample_timestampto Frames and UnresolvedFrames in order to have more fine-grained info on when the samples are collected (#133)
- Export
UnresolvedReporttype to allow developers to get the unresolved report (#132)
- Protect the error number in signal handler (#128)
- Add
frame-pointerfeature to unwind the stack with frame pointer (#116)
- The user has to specify one unwind implementation (
backtrace-rsorframe-pointer) in the features (#116)
- Update prost from 0.9 to 0.10 (#113, #114, #115)
- Fix pthread_getname_np not available on musl (#110)
- Add rust-protobuf support by adding protobuf-codec features (#106)
- protobuf feature is renamed to prost-codec to align all other tikv projects (#106)
- implement
CloneforProfilerGuardBuilder@yangkeao - Add thread names and timing information to protobuf reports @free
blocklistto skip sampling in selected shared library @yangkeao
- Fix memory leak in collector of samples @yangkeao
- Bump prost* to v0.9.0 @PsiACE
- Bump nix to v0.23 @PsiACE
- Bump version of prost* @PsiACE
- Fix the lifetime mark is not used by criterion output @yangkeao
- Change the output paths for
criterion::PProfProfilerto support benchmark groups @yangkeao
- Bump nix to v0.20 @yangkeao
- Implement criterion profiler @yangkeao
- Fix compilation error on arm architecture @yangkeao
- Allow passing custom flamegraph options @yangkeao
- Fix flamegraph inline functions @yangkeao
- Bump version of prost* @xhebox
- Bump rand to v0.8 @dependabot
- Bump nix to v0.19 @dependabot
- Split
symbolic-demangleinto multiple features @yangkeao
- Ignore SIGPROF signal after stop, rather than reset to the default handler @yangkeao
- Add
Report::build_unresolved@umanwizard
- Change from
&mut selfto&selfinRpoertBuilder::build@umanwizard
- Support cpp demangle @yangkeao
- Filter out signal handler functions @yangkeao
- Fix protobuf unit @yangkeao
- Don't get lock inside
backtrace::Backtrace@yangkeao
- Export
prost::Message@yangkeao
- Only use thread name on linux and macos @yangkeao
- Disable
#![feature(test)]outside of tests @kennytm
- Stop timer before profiler stops @yangkeao
- Support profobuf output @lonng
- Change crate name from
rsperftoolstopprof-rs@yangkeao
- Use less stack space @yangkeao
- Seek to the start before reading file in
TempFdArray@yangkeao
- Support customized post processor for frames @yangkeao
- Fix deadlock inside the
std::thread::current().name()@yangkeao
- Avoid calling
mallocinside the signal handler @yangkeao
- Implement
SendforSymbol@yangkeao
- Add log @yangkeao
- Stop signal handler after processing started @yangkeao
- Check whether profiler is running when starting the profiler @yangkeao