Rust Minidump Versions Save

Type definitions, parsing, and analysis for the minidump file format.

v0.21.1

3 months ago

Release Notes

  • Fixed a small regression in the stack walker when dealing with malformed minidumps

Install minidump-stackwalk 0.21.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-minidump/rust-minidump/releases/download/v0.21.1/minidump-stackwalk-installer.sh | sh

Download minidump-stackwalk 0.21.1

File Platform Checksum
minidump-stackwalk-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
minidump-stackwalk-x86_64-apple-darwin.tar.xz Intel macOS checksum
minidump-stackwalk-x86_64-pc-windows-msvc.zip x64 Windows checksum
minidump-stackwalk-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
minidump-stackwalk-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

v0.21.0

3 months ago

Release Notes

  • Native debug information is now read via framehop and wholesym instead of symbolic, this provides significant speedups, reduced memory usage and more flexibility (the stack walker can be built with unwinding support while omitting symbolication for example)
  • Added support for the MINIDUMP_THREAD_INFO_LIST stream
  • Version numbers are now printed out for ELF files if available
  • Symbol files can be passed directly instead of relying on the Breakpad directory structure, assuming they have the correct debug ID and file name
  • Removed the dependency on the chrono crate
  • Various cleanups and speed-ups to the stack walker

Install minidump-stackwalk 0.21.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-minidump/rust-minidump/releases/download/v0.21.0/minidump-stackwalk-installer.sh | sh

Download minidump-stackwalk 0.21.0

File Platform Checksum
minidump-stackwalk-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
minidump-stackwalk-x86_64-apple-darwin.tar.xz Intel macOS checksum
minidump-stackwalk-x86_64-pc-windows-msvc.zip x64 Windows checksum
minidump-stackwalk-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
minidump-stackwalk-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

v0.20.0

4 months ago

Release Notes

  • Fixed several issues when printing error codes on Windows, Linux and macOS
  • Fixed the debug id of modules looked up via code info, these now report the correct debug id for the module
  • The dump_syms option was removed, support for stack-walking and symbolication using native debug information is mature enough that we don't need it anymore
  • The minidump crate doesn't force its dependents to use the same version of memmap2 that it's using
  • Updated several dependencies to remove old crates and duplications

Install minidump-stackwalk 0.20.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-minidump/rust-minidump/releases/download/v0.20.0/minidump-stackwalk-installer.sh | sh

Download minidump-stackwalk 0.20.0

File Platform Checksum
minidump-stackwalk-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
minidump-stackwalk-x86_64-apple-darwin.tar.xz Intel macOS checksum
minidump-stackwalk-x86_64-pc-windows-msvc.zip x64 Windows checksum
minidump-stackwalk-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
minidump-stackwalk-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

v0.19.1

6 months ago

Release Notes

  • Fixed an issue that prevent the GitHub integration from automatically generating a new release.
  • Updated all dependencies to address some mild security issues in some of the dependent crates.

Install minidump-stackwalk 0.19.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/rust-minidump/rust-minidump/releases/download/v0.19.1/minidump-stackwalk-installer.sh | sh

Download minidump-stackwalk 0.19.1

File Platform Checksum
minidump-stackwalk-aarch64-apple-darwin.tar.xz macOS Apple Silicon checksum
minidump-stackwalk-x86_64-apple-darwin.tar.xz macOS Intel checksum
minidump-stackwalk-x86_64-pc-windows-msvc.zip Windows x64 checksum
minidump-stackwalk-x86_64-unknown-linux-gnu.tar.xz Linux x64 checksum

v0.18.0

8 months ago

Release Notes

  • Add support for the MozMacosBootargsStream minidump stream which captures information holding macOS kernel boot arguments.
  • Always use the code file for unwinding on Windows when using native debug information. Previously the stack walker could use the PDB file which does not contain unwinding information in 64-bit builds.
  • Populate the process ID field on Linux, this displays the PID of the crashed process.
  • Expose the MINIDUMP_MEMORY_INFO fields in the public API.
  • Disable bit-flip detection on 64-bit ARM minidumps since it's prone to false positives.

Download minidump-stackwalk 0.18.0

File Platform Checksum
minidump-stackwalk-aarch64-apple-darwin.tar.xz macOS Apple Silicon checksum
minidump-stackwalk-x86_64-apple-darwin.tar.xz macOS Intel checksum
minidump-stackwalk-x86_64-pc-windows-msvc.zip Windows x64 checksum
minidump-stackwalk-x86_64-unknown-linux-gnu.tar.xz Linux x64 checksum

v0.17.0

1 year ago
  • Stack-walking using native debug information was somewhat buggy, after more thorough testing it should be now on-par with breakpad symbol file-based stack-walking.

New minidump-unwind crate

The stack walking machinery has been extracted from the minidump-processor crate and put in a separate one. This crate has significantly less dependencies than the minidump-processor crate which makes it easier to vendor it in projects that only care about stack walking.

Guard-page detection

While analyzing a crash minidump-stackwalk will check if the crashing address hit a potential guard page. Guard pages are usually introduced by the memory allocator around larger allocation and have no permissions set. If the crash address hit one of these pages the memory_accesses filed in the JSON output will contain the is_likely_guard_page: true field.

v0.16.0

1 year ago
  • Make all minidump-common::format structs writable with scroll.
  • Don't fail reading the entire module list if one module has an invalid size.
  • All crates now explicitly include the MIT license
  • The stack walker will now fetch the CPU microcode value from the evil JSON payload when it's not present in the minidump
  • CPU microcode value in the JSON output changed types from u32 to hexstring
  • Crashes with jmp/call/ret instruction to non-canonical addresses now show the real address we jumped to instead of 0x0000000000000000 or 0xffffffffffffffff
  • Updated several dependencies further decreasing the total number of crates it depends upon.

NULL-pointer crash detection

The minidump-processor crate will use the disassembly of the current instruction to check whether the crash involved a NULL-pointer access. Crashes caused by accessing NULL pointers often exhibit near-NULL address making it less clear what the underlying problem was. When using minidump-stackwalk the JSON output will contain an adjusted_address field holding the reason for the adjustment (null-pointer) as well as the offest from NULL.

Potential bit-flip detection

The minidump-processor crate contains new logic that detects crashes that have been potentially caused by a bit-flip in the user's machine memory. This detection is driven by a heuristic as it is impossible to completely tell apart software crashes from ones induced by flaky hardware. The tests we conducted on real crash data showed this heuristic to be very effective in telling apart such crashes. When using minidump-stackwalk this information will be added to the JSON output under the possible_bit_flips field.

Stack walking using native debug information

The stack walker now supports using native debug information available on the host in addition to Breakpad .sym files. This functionality is enabled by passing the --use-local-debuginfo flag to minidump-stackwalk when processing a crash.

v0.15.2

1 year ago
  • Updated the num-range crate, further reducing the number of dependencies required when vendoring this crate

v0.15.1

1 year ago
  • Updated yaxpeax for improved performance when disassembling instructions
  • Removed the tracing crate from the dependencies of the minidump-common crate

v0.15.0

1 year ago
  • More Windows errors are now handled correctly
  • Small improvements when handling macOS exceptions
  • Hexadecimal values are now printed with consistent width and prefixes
  • Several crates were updated
  • Fixed some links in the documentation

Support for instruction disassembly

The stackwalker is now capable of disassembling the crashing instruction, printing it out as well as its memory operands. This functionality is used to improve crash analysis: we implemented the ability to extract the real crashing address for global protection fault exceptions on x86-64. These were usually the result of an access to a non-canonical memory location and were reported as either 0x0000000000000000 or 0xffffffffffffffff depending on the platform, irrespective of the actual address.