Skip to content

Releases: libbpf/blazesym

v0.2.0-alpha.12

06 May 20:29
Compare
Choose a tag to compare

What's Changed

  • 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

New Contributors

Full Changelog: v0.2.0-alpha.11...v0.2.0-alpha.12

cli-v0.1.4

06 May 20:42
Compare
Choose a tag to compare
cli: Bump version to 0.1.4

This change bumps blazecli's version to 0.1.4. The following notable
changes have been made since 0.1.3:
- Added 'inspect' command
- Bumped blazesym dependency to 0.2.0-alpha.12

Signed-off-by: Daniel Müller <deso@posteo.net>

v0.2.0-alpha.11

23 Feb 17:14
Compare
Choose a tag to compare

What's Changed

  • 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

New Contributors

Full Changelog: cli-v0.1.2...v0.2.0-alpha.11

cli-v0.1.3

23 Feb 17:22
Compare
Choose a tag to compare
cli: Bump version to 0.1.3

This change bumps blazecli's version to 0.1.3. The following notable
changes have been made since 0.1.2:
- Added support for symbolization using Breakpad (*.sym) files
- Added --no-debug-syms option to symbolize elf sub-command
- Added --no-build-ids option to normalize user sub-command
- Bumped blazesym dependency to 0.2.0-alpha.11

Signed-off-by: Daniel Müller <deso@posteo.net>

v0.2.0-alpha.10

16 Jan 19:37
Compare
Choose a tag to compare

What's Changed

  • 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

Full Changelog: v0.2.0-alpha.9...v0.2.0-alpha.10

cli-v0.1.2

16 Jan 19:49
Compare
Choose a tag to compare
cli: Bump version to 0.1.2

This change bumps blazecli's version to 0.1.2. The following notable
changes have been made since 0.1.1:
- Bumped blazesym dependency to 0.2.0-alpha.10

Signed-off-by: Daniel Müller <deso@posteo.net>

v0.2.0-alpha.9

11 Dec 21:29
Compare
Choose a tag to compare

What's Changed

  • 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

Full Changelog: v0.2.0-alpha.8...v0.2.0-alpha.9

v0.2.0-alpha.8

02 Nov 23:56
Compare
Choose a tag to compare

What's Changed

  • 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

Full Changelog: v0.2.0-alpha.7...v0.2.0-alpha.8

v0.2.0-alpha.7

04 Oct 17:44
Compare
Choose a tag to compare

What's Changed

  • "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

New Contributors

Full Changelog: v0.2.0-alpha.6...v0.2.0-alpha.7

v0.2.0-alpha.6

14 Sep 18:02
Compare
Choose a tag to compare

What's Changed

  • Fixed potential panic when normalizing an APK ELF file using the C APIs

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