PackageTrack
Sign in Get early access

blazesym

blazesym is a library for address symbolization and related tasks.

0.2.6 6.8M downloads/mo #3853 most downloaded on crates.io libbpf/blazesym

What this package is like to depend on

Last release 1 months ago

20 Jul 2026

Ships fairly regularly

a new release about every 2 months

Nearly every release is documented

notes for 7 of 7 stable releases

1 version withdrawn

withdrawn after publishing

4 years old

27 releases · first in 2022

8 releases in the last 12 months

see the full history below

Release timeline

27 releases · Jul 2022 to Jul 2026
2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 27
  1. 0.2.6 20 Jul 2026
    Release notes

    What's Changed

    • Adjusted ELF symbolization to report sizeless .dynsym entries only on exact address matches
    • Added symbolize::Symbolizer::evict method for evicting cached data

    New Contributors

    Full Changelog: v0.2.5...v0.2.6

    Open source →
    Release notes
    • Adjusted ELF symbolization to report sizeless .dynsym entries only on exact address matches
    • Added symbolize::Symbolizer::evict method for evicting cached data
    Open source →
  2. 0.2.5 24 Jun 2026
    Release notes

    What's Changed

    • Improved DWARF symbolization performance for some debug info variants
    • Improved debug link CRC checking and ELF section decompression performance
    • Switched zlib implementation from miniz_oxide to zlib-rs for improved decoding performance
    • Added _stext symbol based KASLR offset inference fallback for kernel address symbolization

    New Contributors

    Full Changelog: v0.2.4...v0.2.5

    Open source →
    Release notes
    • Improved DWARF symbolization performance for some debug info variants
    • Improved debug link CRC checking and ELF section decompression performance
    • Switched zlib implementation from miniz_oxide to zlib-rs for improved decoding performance
    • Added _stext symbol based KASLR offset inference fallback for kernel address symbolization
    Open source →
  3. 0.2.4 27 May 2026
    Release notes

    What's Changed

    • Added support for relocatable ELF and DWARF
    • Added support for kernel module symbolization with DWARF data
    • Improved performance of ELF symbolization
    • Improved performance of Gsym symbolization
    • Fixed kernel symbolization failing when /proc/kcore is inaccessible but kallsyms is available
    • Bumped minimum supported Rust version to 1.88

    New Contributors

    Full Changelog: v0.2.3...v0.2.4

    Open source →
    Release notes
    • Added support for relocatable ELF and DWARF
    • Added support for kernel module symbolization with DWARF data
    • Improved performance of ELF symbolization
    • Improved performance of Gsym symbolization
    • Fixed kernel symbolization failing when /proc/kcore is inaccessible but kallsyms is available
    • Bumped minimum supported Rust version to 1.88
    Open source →
  4. 0.2.3 29 Jan 2026
    Release notes

    What's Changed

    • Added support for /usr/lib/debug/.build-id debug link target directory
    • Added support for compressed .gnu_debugdata ELF sections (MiniDebugInfo)

    Full Changelog: v0.2.2...v0.2.3

    Open source →
    Release notes
    • Added support for /usr/lib/debug/.build-id debug link target directory
    • Added support for compressed .gnu_debugdata ELF sections (MiniDebugInfo)
    Open source →
  5. 0.2.2 15 Jan 2026
    Release notes

    What's Changed

    • Improved data caching for debug link targets and DWP files
    • Improved kernel symbolization performance when no KASLR offset is provided by the user
    • Fixed backtrace reporting on contextualized errors
    • Added bindings for Go language

    New Contributors

    Full Changelog: v0.2.1...v0.2.2

    Open source →
    Release notes
    • Improved data caching for debug link targets and DWP files
    • Improved kernel symbolization performance when no KASLR offset is provided by the user
    • Fixed backtrace reporting on contextualized errors
    • Added bindings for Go language
    Open source →
  6. 0.2.1 13 Nov 2025
    Release notes
    • Adjusted symbolize::Symbolizer::symbolize behavior to stop being short-circuiting
      • Added Reason::IgnoredError variant
    • Fixed reporting of code info directory for DWARF symbolization if not explicitly overwritten by source file
    Open source →
  7. 0.2.0 23 Sep 2025
    Release notes
    • Adjusted symbolize::{Resolved,}Sym::code_info to be heap allocated
    • Made symbolize::ResolvedSym non-exhaustive
    • Report special module string when symbolizing vDSO and BPF symbols
    Open source →
  8. 0.2.0-rc.5 02 Sep 2025 pre-release
    Release notes
    • Added support for discovering and using DWARF packages (*.dwp)
    • Added Symbolizer::register_elf_resolver method
    • Adjusted ELF logic to include STT_NOTYPE symbols in symbolization
    Open source →
  9. 0.2.0-rc.4 24 Jun 2025 pre-release
    Release notes
    • Added support for symbolizing addresses in a vDSO
      • Added vdso attribute to symbolize::Process type
    • Added support for normalizing addresses in a vDSO
      • Added normalize::UserMeta::Sym variant
    • Adjusted debug link resolution to handle self-referential debug links more gracefully
    • Report "symbolic" path in symbolize::Sym::module when using process symbolization on APKs with map_files set to true
    • Improved handling of symbolic links to prevent duplicate work for same symbol source reached through different links
    • Fixed reading of compressed ELF section data with unaligned compression headers
    • Adjusted symbol names reported for BPF programs to contain bpf_prog_ prefix and program tag
    • Made inspect::SymInfo type non-exhaustive
    • Merged normalize::Reason and symbolize::Reason
    • Changed CodeInfo::to_owned to into_owned
    • Bumped minimum supported Rust version to 1.75
    Open source →
  10. 0.2.0-rc.3 18 Mar 2025 pre-release
    Release notes
    • Added support for 32 bit ELF binaries
    • Added symbolize::Symbolizer::cache method for caching process VMA as well as ELF metadata
    • Added normalize::NormalizeOpts::apk_to_elf attribute for normalizing addresses mapping to APKs to the contained ELF file
    • Added symbolize::Sym::module attribute
    • Renamed symbolize::Source::kernel_image to vmlinux
    • Renamed inspect::SymInfo::obj_file_name to module
    • Adjusted kernel symbolization logic to give preference to vmlinux file, if present
    • Changed symbolize::Kernel::{kallsyms,kernel_image} to support disabling of the source
    • Adjusted vmlinux based kernel address symbolization logic to take into account system KASLR state
      • Added kaslr_offset member to symbolize::Kernel
    • Moved symbolization and inspection sources into source sub-module
    • Moved normalize::Apk behind existing apk feature
    • Changed inspect::SymInfo::size to be an Option
    • Fixed unsoundness in internally used InsertMap type
    • Bumped minimum supported Rust version to 1.70
    Open source →
  11. 0.2.0-rc.2 05 Nov 2024 pre-release
    Release notes
    • Added support for symbolizing BPF kernel program addresses including source code information
      • Added bpf (default disabled) feature
    • Added Mac OS to list of supported operating systems for file based symbolization
    • Added support for iteration over DWARF symbols to inspect::Inspector
    • Adjusted normalization logic to use "symbolic path" for reading build IDs when normalizing with NormalizeOpts::map_files equal to false
    • Adjusted inspect::Inspector::for_each to accept callback returning std::ops::ControlFlow to facilitate early termination
    • Improved kallsyms parsing performance to speed up overall kernel address symbolization
    • Fixed incorrect file offset to virtual offset translation, resulting in wrong symbolization in certain binaries
    • Bumped minimum supported Rust version to 1.69
    Open source →
  12. 0.2.0-rc.1 05 Sep 2024 pre-release
    Release notes
    • Added support for using PROCMAP_QUERY ioctl during address normalization
      • Added enable_procmap_query to normalize::Normalizer
      • Added is_procmap_query_supported function to helper module
    • Adjusted normalization logic to not fail overall operation on build ID read failure
    • Added support for file based symbolization on the Windows operating system
    • Improved performance for parsing Breakpad files
    • Made sure to not emit "self" component in normalized paths when map_files is in use
    • Fixed potentially invalid reading of debug link checksum when .gnu_debuglink section is unaligned
    • Renamed enable_maps_caching method of normalize::Normalizer to enable_vma_caching
    • Renamed UserMeta::{apk,elf,unknown} methods by prefixing them with as_
    Open source →
  13. 0.2.0-rc.0 10 Jun 2024 pre-release
    Release notes
    • Added support for transparently following debug links in ELF binaries
      • Added symbolize::Builder::set_debug_dirs for configuring directories searched for targets
    • Introduced normalize::NormalizeOpts type for configurable address normalization
      • Removed normalize::Normalizer::normalize_user_addrs_sorted in favor of normalize::Normalizer::normalize_user_addrs_opts
    • Fixed handling of zero sized symbols in Gsym symbolization logic
    • Fixed reading of ELF section contents of sections without actual data
    Open source →
  14. 0.2.0-alpha.12 06 May 2024 pre-release
    Release notes
    • Added support for advanced symbolization workflows involving containers (process or APKs) via configurable dispatch functions
    • Added cache_maps and cache_build_ids properties to normalize::Normalizer type
      • Adjusted normalization logic to return references to cached build IDs if cache_build_ids is true
    • Added support for compressed debug information
      • Added zlib (default enabled) and zstd (default disabled) features
    • Adjusted Inspector::for_each signature to no longer carry explicit state around
    • Introduced normalize::Reason enum to provide best guess at why normalization was not successful as part of the normalize::UserMeta::Unknown variant
    • Added From<Box<dyn std::error::Error>> conversion to Error
    • Added Display impl to ErrorKind
    • Added read_elf_build_id_from_mmap function to helper module
    • Reduced number of allocations performed on address normalization and process symbolization paths
    • Improved symbolization performance on certain unoptimized DWARF data
    • Fixed potential numeric overflow when parsing non-UTF-8 (invalid) Breakpad files
    • Removed Clone impl of symbolize::Builder type
    Open source →
  15. 0.2.0-alpha.11 23 Feb 2024 pre-release
    Release notes
    • Added support for Breakpad format behind breakpad feature (disabled by default)
    • Added support for usage of perf map files as part of process symbolization
      • Added perf_map attribute to symbolize::Process type
    • Added map_files attribute to symbolize::Process type
    • Added support for symbolizing addresses mapping to ELF variables and for looking them up using inspect APIs
    • Added support for GNU indirect functions to ELF logic
    • Overhauled SymType enum
      • Made it non-exhaustive
      • Moved it out of inspect module
      • Renamed Unknown variant to Undefined
    • Made auto reloading of symbolization sources on change configurable
    • Fixed DWARF symbolization in the presence of cross compilation unit references
    Open source →
  16. 0.2.0-alpha.10 16 Jan 2024 pre-release
    Release notes
    • Introduced symbolize::Reason enum to provide best guess at why symbolization was not successful as part of the symbolize::Symbolized::Unknown variant
    • Introduced apk and gsym compile-time features (disabled by default)
    • Improved handling of dynamic ELF symbols for symbolization and inspection
    • Fixed Gsym symbolization issue for "large" addresses
    • Reordered pid argument to normalization functions before addresses
    • Reordered src argument to inspection functions before names
    Open source →
  17. 0.2.0-alpha.9 11 Dec 2023 pre-release
    Release notes
    • Added caching logic for Gsym resolvers to symbolize::Symbolizer
    • Adjusted various symbolization related types to contain Cow objects to facilitate hand out of memory mapped data without unnecessary allocations
      • Adjusted various symbolization code paths to stop heap-allocating
    • Adjusted normalization logic to honor executable and readable proc maps entries
    • Changed debug_syms to be a symbolization source property instead of a symbolize::Symbolizer attribute
    • Renamed inspect::Elf::debug_info to debug_syms
    • Handled potential numeric overflow in Gsym inlined function parser more gracefully
    • Moved C API definitions into blazesym-c crate
    • Fixed build for some Android flavors
    Open source →
  18. 0.2.0-alpha.8 02 Nov 2023 pre-release
    Release notes
    • Fixed build failure when dwarf feature is not enabled
    • Changed Addr to map to 64 bit integer
    • Reworked normalization APIs to produce file offsets instead of virtual offsets
    • Introduced symbolize::Input enum and made it part of symbolization APIs to distinguish between and support different input types
      • Added support for ELF symbolization using file offsets instead of addresses
    • Added symbolize::Source::Apk variant
    • Made symbolization source caching unconditional and removed least-recently-used semantics in favor of full user control
    • Added caching for APK related symbolization data structures
    • Added caching logic to inspect::Inspector
    • Adjusted inspect::SymInfo type to optionally just reference cached data as opposed to having to heap-allocate copies of it
    • Added support for iterating over all symbols in a source to inspect::Inspector
    • Made inspect::SymInfo::file_offset member optional
    • Added ability to contain backtraces in Error objects
    • Added support for symbolizing Gsym addresses to blazecli
    • Fixed bogus inlined function reporting for Gsym
    • Bumped minimum supported Rust version to 1.65
    Open source →
  19. 0.2.0-alpha.7 04 Oct 2023 pre-release
    Release notes
    • "Flattened" return type of symbolize::Symbolizer::symbolize method from nested Vec to a single level Vec of newly introduced symbolize::Symbolized enum
    • Further changes to symbolize::Sym:
      • Added size member and to_path helper method
      • Factored out CodeInfo type capturing all source code location information
      • Included optional inlined function information via inlined attribute
    • Added support for reporting inlined functions for DWARF and Gsym formats
    • Introduced symbolize::Symbolizer::symbolize_single for more convenient symbolization of a single address
    • Introduced normalize::Builder type for customization of a normalize::Normalizer instance and made reading of build IDs configurable
    • Adjusted ELF symbolization code to honor symbol sizes
    • Renamed symbolize::Builder::enable_src_location to enable_code_info
    • Bumped minimum supported Rust version to 1.64
    Open source →
  20. 0.2.0-alpha.6 14 Sep 2023 pre-release
    Release notes
    • Fixed potential panic when normalizing an APK ELF file using the C APIs
    Open source →
  21. 0.2.0-alpha.5 10 Aug 2023 pre-release
    Release notes
    • Fixed potentially incorrect reporting of symbols from ELF source
    Open source →
  22. 0.2.0-alpha.4 07 Aug 2023 pre-release
    Release notes
    • Added support for automatic demangling of symbols, controlled by demangle feature (at compile time) and corresponding flag in symbolize::Builder (at runtime)
    • Renamed symbolize::SymbolizedResult to Sym and reworked it
      • Made it non-exhaustive
      • Renamed symbol member to name
      • Added offset member
      • Changed line member to be of type u32 and column to u16
      • Made all source code location information optional
      • Split path member into dir and file
    • Added additional end-to-end benchmarks
      • Added benchmark result summary to CI runs
    • Fixed spurious maps file path creation for low addresses as part of normalization/symbolization
    • Improved symbolization of addresses in ELF files with potentially bogus symbol sizes
    • Introduced blazecli command line interface for the library
    • Introduced helper module exposing read_elf_build_id function
    Open source →
  23. 0.2.0-alpha.3 21 Jul 2023 pre-release
    Release notes
    • Introduced custom Error type instead of relying solely on std::io::Error
    • Switched to using gimli for DWARF support
      • Added support for DWARF versions v2, v3, and v5 for symbol lookup and source code information retrieval
      • Introduced dwarf feature to make dependency optional
    • Switched from log to using tracing as the logging backend
      • Added spans to a couple of relevant call sites
    • Added support for using DWARF information for symbol lookup (instead of just ELF symbols; so far DWARF was only used for mapping names to symbol information)
    • Added support for normalizing and symbolizing addresses in an ELF file contained in an APK
    • Adjusted symbolize::Source::Gsym variant to support symbolizing Gsym from user provided "raw" data
    • Renamed normalize::UserAddrMeta::Binary variant to Elf
    • Renamed blaze_user_addr_meta_unknown::__unused member to _unused
    Open source →
  24. 0.2.0-alpha.2 23 May 2023 pre-release
    Release notes
    • Added extern "C" guards in blazesym.h header for easy of use from C++ code
    • Added unused member variable to blaze_user_addr_meta_unknown type for compliance with C standard, stating undefined behavior for empty structs
    • Changed blaze_inspect_elf_src::path type to *const _
    • Fixed incorrect NULL checks when working with blaze_symbolize_src_kernel objects
    • Switched away from using Git LFS for large benchmark files towards on-demand downloading from a different repository, controlled by generate-bench-files feature
    Open source →
  25. 0.2.0-alpha.1 17 May 2023 pre-release
    Release notes
    • Removed no longer necessary base_address member from various types
    • Renamed SymInfo::address member to addr
    • Fixed incorrect allocation size calculation in C API
    • Fixed file offset lookup potentially reporting subtly wrong offsets on certain ELF file segment constellations
    Open source →
  26. 0.2.0-alpha.0 04 May 2023 pre-release
    Release notes
    • Initial documented release
    Open source →
  27. 0.1.0 12 Jul 2022 withdrawn

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive