backtrace
A library to acquire a stack trace (backtrace) at runtime in a Rust program.
0.3.76
473M downloads/mo
#248 most downloaded on crates.io
rust-lang/backtrace-rs
What this package is like to depend on
Last release 11 months ago
26 Sep 2025
Ships fairly regularly
a new release about every 3 months
Rarely documented
notes for 9 of 87 stable releases
3 versions withdrawn
withdrawn after publishing
11 years old
90 releases · first in 2015
1 release in the last 12 months
see the full history below
Release timeline
90 releases · Jun 2015 to Sep 2025Releases
latest 60 of 90-
0.3.7626 Sep 2025Release notes
Open source →Behavior
- Fix inverted polarity of "full printing" logic in #726:
Previously we used to do the opposite of what you would expect.
Platform Support
- Windows: Removed hypothetical soundness risk from padding bytes in #737
- Fuchsia: Added appropriate alignment checks during
Elf_Nhdrparsing in #725 - Cygwin: Added support in #704
- Windows (32-bit Arm): Restore support in #685
- NuttX (32-bit Arm): Use builtin
_Unwind_GetIPin #692 - RTEMS: Enable libunwind in #682
Dependencies
- Fix inverted polarity of "full printing" logic in #726:
-
0.3.7506 May 2025Release notes
Open source →What's Changed
- Add support for symbolicating APK/ZIP-embedded libraries on Android in #662
- Support zstd-compressed ELF sections in #626
- Recognize windows-sys signatures as "C" or "system" depending on cfg in #677
- Enable libunwind for rtems in #682
- MSRV is now 1.79
New Contributors
- @thesummer made their first contribution in #682
- @sudoBash418 made their first contribution in #662
- @marcoieni made their first contribution in #684
- @madsmtm made their first contribution in #681
Full Changelog: 0.3.74...0.3.75
-
0.3.7408 Sep 2024Release notes
Open source →What's Changed
- QNX Neutrino 7.0 support, thanks to @nyurik in #648
- Cleaned up our Android support. This should massively improve backtraces for ones with the API level sufficient to ship with libunwind, etc. Unfortunately, it comes at the cost of dropping support for older ones! Thanks to @fengys in #656
- Made PrintFmt, which was using the
Enum::__NonExhaustiveVariantpattern, use#[non_exhaustive]for real. Don't @ me if you were matching on that! Thanks to @nyurik in #651 - Massively cleaned up the windows code! We moved from winapi to windows-sys with windows-targets thanks to @CraftSpider and @ChrisDenton in
- Don't cast HANDLE to usize and back by @CraftSpider in #635
- Switch from
winapitowindows-sysby @CraftSpider in #641 - Update windows bindings and use windows-targets by @ChrisDenton in #653
- A bunch of updated dependencies. Thanks @djc and @khuey!
- Sorry if you were testing this code in miri! It started yelling about sussy casts. A lot. We did a bunch of internal cleanups that should make it quiet down, thanks to @workingjubilee in #641
- Uhhh we had to tweak
dl_iterate_phdrin #660 after Android revealed it was... kind of unsound actually and not doing things like checking for null pointers before making slices! WHOOPS! Thanks to @saethlin for implementing detection for precisely that in rustc! It's really hard to find soundness issues in inherited codebases like this one...
New Contributors
- @CraftSpider made their first contribution in #635
- @fengys1996 made their first contribution in #656
- @djc made their first contribution in #657
Full Changelog: 0.3.73...0.3.74
-
0.3.7312 Jun 2024Release notes
Open source →This basically just is bugfixes so that backtrace works on Windows 7 again.
What's Changed
- Fix signature of resolve_legacy for Windows 7 target by @aapanfilovv in #631
- Update some comments by @ChrisDenton in #630
- Update object to 0.36.0. by @afranchuk in #633
New Contributors
- @aapanfilovv made their first contribution in #631
- @afranchuk made their first contribution in #633
Full Changelog: 0.3.72...0.3.73
-
0.3.7228 May 2024Release notes
Open source →This release removes a lot of dead code. Some feature flags that haven't done anything in a long time are gone. If you depend on those features, Cargo's resolver will not update you to 0.3.72.
If your code runs on Windows, or you want it to run on visionOS, however, you should probably update to this version. It contains a number of fixes for both OS. It also uses the latest version of a number of dependencies.
What's Changed
- Revert "Use rustc from stage0 instead of stage0-sysroot (rust-lang/ba… by @Nilstrieb in #603
- Remove dead code by @ChrisDenton in #605
- Fix CI and remove rustc-serialize by @ChrisDenton in #596
- Use correct base address and update comment by @ChrisDenton in #604
- Windows AArch64: Break out of tracing when no longer making progress by @dpaoliello in #610
- Remove obsolete rustc-serialize references by @atouchet in #614
- Update
objectandaddr2linedependencies by @a1phyr in #612 - Fix tests for rust 1.79 by @workingjubilee in #621
- Remove unused
libbacktraceandgimli-symbolizefeatures by @Enselic in #615 - remove some instances of dead_code by @klensy in #619
- Reduce panics in dbghelp by @ChrisDenton in #608
- Add Apple visionOS support by @QuentinPerez in #613
- Update cc crate to v1.0.97 by @jfgoog in #623
- chore: add docs for the global re-entrant lock by @Gankra in #609
- Test with lld-compatible args by @workingjubilee in #627
- Bump rustc-demangle version by @michaelwoerister in #624
- cleanup dead_code around cpp_demangle feature by @klensy in #622
- Cut backtrace 0.3.72 by @workingjubilee in #628
New Contributors
- @Enselic made their first contribution in #615
- @QuentinPerez made their first contribution in #613
- @Gankra made their first contribution in #609
Full Changelog: 0.3.71...0.3.72
-
0.3.7122 Mar 2024Release notes
Open source →This is mostly CI changes, with a very mild bump to our effective cc crate version recorded, and a small modification to a previous changeset to allow backtrace to run at its current checked-in MSRV on Windows. Sorry about that! We will be getting 0.3.70 yanked shortly.
What's Changed
- Make sgx functions exist with cfg(miri) by @saethlin in #591
- Update version of cc crate by @jfgoog in #592
- Pull back MSRV on Windows by @workingjubilee in #598
- Force frame pointers on all i686 tests by @workingjubilee in #601
- Use rustc from stage0 instead of stage0-sysroot by @Nilstrieb in #602
- Cut backtrace 0.3.71 by @workingjubilee in #599
New Contributors
- @jfgoog made their first contribution in #592
- @Nilstrieb made their first contribution in #602
Full Changelog: 0.3.70...0.3.71
-
0.3.7021 Mar 2024 withdrawnRelease notes
Open source →New API
Platform Support
We added support for new platforms in this release!
- Thanks to @bzEq in #508 we now have AIX support!
- Thanks to @sthibaul in #567 we now have GNU/Hurd support!
- Thanks to @dpaoliello in #587 we now support "emulation-compatible" AArch64 Windows (aka arm64ec)
Windows
- Rewrite msvc backtrace support to be much faster on 64-bit platforms by @wesleywiser in #569
- Fix i686-pc-windows-gnu missing dbghelp module by @wesleywiser in #571
- Fix build errors on
thumbv7a-*-windows-msvctargets by @kleisauke in #573 - Fix panic in backtrace symbolication on win7 by @roblabla in #578
- remove few unused windows ffi fn by @klensy in #576
- Make dbghelp look for PDBs next to their exe/dll. by @michaelwoerister in #584
- Revert 32-bit dbghelp to a version WINE (presumably) likes by @ChrisDenton in #588
- Update for Win10+ by @ChrisDenton in #589
SGX
Thanks to
Internals
We did a bunch more work on our CI and internal cleanups
- Modularise CI workflow and validate outputs for binary size checks. by @detly in #549
- Commit Cargo.lock by @bjorn3 in #562
- Enable calling build.rs externally v2 by @pitaj in #568
- Upgrade to 2021 ed and inline panics by @nyurik in #538
- Fix deny(unused) of an unused import with SGX + Miri by @saethlin in #581
- Fix unused_imports warning on latest nightly by @ChrisDenton in #575
- Fix CI by @saethlin in #582
- Use
addr_of!by @GrigorenkoPV in #585 - Write down MSRV policy by @workingjubilee in #561
- Apply clippy::uninlined_format_args fixes by @nyurik in #486
- ignore clippy lints in
symbolize/gimli/stash.rsby @onur-ozkan in #586
New Contributors
- @nyurik made their first contribution in #538
- @bzEq made their first contribution in #508
- @bjorn3 made their first contribution in #562
- @sthibaul made their first contribution in #567
- @mzohreva made their first contribution in #566
- @wesleywiser made their first contribution in #569
- @kleisauke made their first contribution in #573
- @roblabla made their first contribution in #578
- @michaelwoerister made their first contribution in #584
- @dpaoliello made their first contribution in #587
- @GrigorenkoPV made their first contribution in #585
- @fraillt made their first contribution in #526
- @onur-ozkan made their first contribution in #586
Full Changelog: 0.3.69...0.3.70
-
0.3.6922 Aug 2023Release notes
Open source →Thank you everyone for contributing to a very nice release!
Tracking Binary Size
As backtrace-rs is compiled into every single Rust program, we have begun tracking its binary size in order to find ways to reduce its impact on programs that only minimally use backtraces over time. This change is mostly relevant to this crate's CI, and has been implemented by @Kobzol and @detly over PRs #542, #544, #546, and #550!
Platform-Specific Fixes
As usual, the majority of PRs for this release only affect 1 or 2 platforms. Technically, even the binary-size tracking is only implemented to track binary size on
x86_64-unknown-linux-gnu.fuchsia
Backtraces for Fuchsia will now uses extended symbolization thanks to @liudangyi in #559
unix (with
procfs)Many Unix-y platforms support
/proc, including Linux and FreeBSD, but not OpenBSD. For those which do, backtrace uses/proc/self/mapsto assist in recovering the trace. We did not parse the output of/proc/self/mapsin a way that accounted for the fact that it may have spaces in path names, but this was fixed thanks to @MasonRemaley in #553windows-msvc
Some changes that should help binary size specifically on Windows MSVC targets, or at least compile times, have already been implemented, thanks to @klensy in #543 omitting compiling-in ELF backtrace capabilities. We don't have full binary size tracking for all major supported operating systems yet, so we believe this is worth 30KiB but that's more of an estimate than hard stats.
Dependency Management
- Update addr2line and object dependencies by @philipc in #557
- Exclude ci directory from packaged crate by @mulkieran in #555
- Enable calling build.rs directly from std/build.rs by @pitaj in #556
New Contributors
- @Kobzol made their first contribution in #542
- @detly made their first contribution in #550
- @liudangyi made their first contribution in #559
- @MasonRemaley made their first contribution in #553
- @mulkieran made their first contribution in #555
- @pitaj made their first contribution in #556
- @klensy made their first contribution in #543
Full Changelog: 0.3.68...0.3.69
-
0.3.6829 Jun 2023Release notes
Open source →A bunch of behind-the-scenes work on upgrading CI has finally got things to a place where we can do confident releases again, so hopefully the next backtrace version will not take 6 months! Thanks to everyone who contributed to that! Most of the user-facing changes are about dependency updates and consequent improved platform compatibility, including with split DWARF. A few new functions on BacktraceFmt should also make it easier to inject additional text into backtrace's output.
- Adapt to new Fuchsia target name by @flba-eb in #509
- armv7 PSVita OS support by @nikarh in #523
- Upgrade addr2line and properly handle split DWARF on Linux by @khuey in #513
- deps: update miniz_oxide to 0.7 by @poliorcetics in #521
- Add print in BacktraceFmt by @chenyukang in #527
- Bump object to 0.31 by @lnicola in #522
- Add an exception for QNX Neutrino 7.0 as a 'no-op' platform by @samkearney in #529
- Use mmap64 on Linux. by @mikebenfield in #501
- dbghlp: Make mutex name unique to the process by @ChrisDenton in #518
- gimli add netbsd to handle dl_iterate_phdr as well. by @devnexen in #512
- Add other apple targets to libunwind workaround by @thomcc in #516
- Add fmt method for BacktraceFmt by @chenyukang in #532
New Contributors
- @bwmf2 made their first contribution in #515
- @flba-eb made their first contribution in #509
- @nikarh made their first contribution in #523
- @poliorcetics made their first contribution in #521
- @GuillaumeGomez made their first contribution in #524
- @chenyukang made their first contribution in #527
- @lnicola made their first contribution in #522
- @samkearney made their first contribution in #529
- @mikebenfield made their first contribution in #501
- @devnexen made their first contribution in #512
- @thomcc made their first contribution in #516
- @workingjubilee made their first contribution in #533
- @chriswailes made their first contribution in #534
Full Changelog: 0.3.67...0.3.68
-
0.3.6714 Dec 2022Release notes
Open source →What's Changed
- make a private function private by @RalfJung in #478
- Remove windows-i686-gnu CI by @alexcrichton in #480
- Obey the return value from the trace visitor under Miri by @saethlin in #476
- Be compatible with -Zmiri-strict-provenance by @saethlin in #477
- Explicitly link kernel32.lib by @ChrisDenton in #482
- Bump miniz_oxide to 0.6 by @paolobarbolini in #483
- Use /proc/self/maps when available instead of std::env::current_exe by @pnkfelix in #488
- Fix dupe word typos by @Rageking8 in #490
- C/C++ module file and line number are not looked up: addr2line 0.18.0 fixes it by @bsekura in #492
- Update/remove outdated comments by @glandium in #496
- Update dependencies by @a1phyr in #495
- Change "OSX" to "macOS" by @atouchet in #491
- Use SPDX license format by @atouchet in #464
- Prepare 0.3.67 releaase by @JohnTitor in #498
New Contributors
- @saethlin made their first contribution in #476
- @ChrisDenton made their first contribution in #482
- @paolobarbolini made their first contribution in #483
- @pnkfelix made their first contribution in #488
- @Rageking8 made their first contribution in #490
- @bsekura made their first contribution in #492
- @glandium made their first contribution in #496
Full Changelog: 0.3.66...0.3.67
-
0.3.6607 Jul 2022Nothing published for this version
-
0.3.6518 Apr 2022Nothing published for this version
-
0.3.6428 Jan 2022Nothing published for this version
-
0.3.6301 Nov 2021Nothing published for this version
-
0.3.6220 Oct 2021Nothing published for this version
-
0.3.6126 Jul 2021Nothing published for this version
-
0.3.6003 Jun 2021Nothing published for this version
-
0.3.5907 May 2021Nothing published for this version
-
0.3.5827 Apr 2021Nothing published for this version
-
0.3.5720 Apr 2021Nothing published for this version
-
0.3.5621 Jan 2021Nothing published for this version
-
0.3.5520 Nov 2020Nothing published for this version
-
0.3.5430 Oct 2020Nothing published for this version
-
0.3.5311 Oct 2020Nothing published for this version
-
0.3.5208 Oct 2020Nothing published for this version
-
0.3.5129 Sep 2020Nothing published for this version
-
0.3.5007 Jul 2020Nothing published for this version
-
0.3.4915 Jun 2020Nothing published for this version
-
0.3.4813 May 2020Nothing published for this version
-
0.3.4712 May 2020Nothing published for this version
-
0.3.4624 Mar 2020Nothing published for this version
-
0.3.4504 Mar 2020Nothing published for this version
-
0.3.4411 Feb 2020Nothing published for this version
-
0.3.4329 Jan 2020Nothing published for this version
-
0.3.4215 Jan 2020 withdrawnNothing published for this version
-
0.3.4113 Jan 2020Nothing published for this version
-
0.3.4017 Oct 2019Nothing published for this version
-
0.3.3917 Oct 2019Nothing published for this version
-
0.3.3823 Sep 2019Nothing published for this version
-
0.3.3704 Sep 2019Nothing published for this version
-
0.3.3604 Sep 2019Nothing published for this version
-
0.3.3519 Aug 2019Nothing published for this version
-
0.3.3431 Jul 2019Nothing published for this version
-
0.3.3317 Jul 2019Nothing published for this version
-
0.3.3226 Jun 2019Nothing published for this version
-
0.3.3123 Jun 2019Nothing published for this version
-
0.3.3004 Jun 2019Nothing published for this version
-
0.3.2904 Jun 2019Nothing published for this version
-
0.3.2803 Jun 2019Nothing published for this version
-
0.3.2703 Jun 2019Nothing published for this version
-
0.3.2625 May 2019Nothing published for this version
-
0.3.2525 May 2019Nothing published for this version
-
0.3.2424 May 2019Nothing published for this version
-
0.3.2324 May 2019Nothing published for this version
-
0.3.2223 May 2019Nothing published for this version
-
0.3.2123 May 2019Nothing published for this version
-
0.3.2020 May 2019Nothing published for this version
-
0.3.1920 May 2019Nothing published for this version
-
0.3.1817 May 2019Nothing published for this version
-
0.3.1715 May 2019Nothing published for this version