Skip to content

Releases: libbpf/blazesym

v0.2.0-alpha.5

10 Aug 22:28
Compare
Choose a tag to compare

What's Changed

  • Fixed potentially incorrect reporting of symbols from ELF source

Full Changelog: v0.2.0-alpha.4...v0.2.0-alpha.5

v0.2.0-alpha.4

07 Aug 21:49
Compare
Choose a tag to compare

What's Changed

  • 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

Full Changelog: v0.2.0-alpha.3...v0.2.0-alpha.4

v0.2.0-alpha.3

21 Jul 00:07
Compare
Choose a tag to compare

What's Changed

  • 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

Full Changelog: v0.2.0-alpha.2...v0.2.0-alpha.3

v0.2.0-alpha.2

23 May 21:15
Compare
Choose a tag to compare

What's Changed

  • 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

Full Changelog: v0.2.0-alpha.1...v0.2.0-alpha.2

v0.2.0-alpha.1

17 May 19:42
Compare
Choose a tag to compare

What's Changed

  • 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

Full Changelog: v0.2.0-alpha.0...v0.2.0-alpha.1

v0.2.0-alpha.0

17 May 19:15
Compare
Choose a tag to compare

First alpha release of v0.2.0. Vast rework with overhauled APIs and dozens of bug fixes over v0.1.0.

blazesym v0.1.0

07 Jul 03:49
Compare
Choose a tag to compare

BlazeSym is a library that symbolizes addresses where symbol names, source file names, and line numbers can be acquired. It can translate stack traces to function names and their locations in the source code.

BlazeSym v0.1.0 provides a simple symbolization API (Rust & C) to developers.

Rust API provides functions to

  • create a symbolizer, and
  • symbolize a list of addresses.

C API provides functions to

  • create a symbolizer,
  • free a symbolizer,
  • symbolize a list of addresses, and
  • free the data returned from symbolization.

BlazeSym read symbols and debug information from various types of sources, including

  • ELF files,
  • processes, and
  • kernel images and kallsyms files.

Please check README.md for details.