Releases: libbpf/blazesym
v0.2.0-alpha.5
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
What's Changed
- Added support for automatic demangling of symbols, controlled by
demangle
feature (at compile time) and corresponding flag insymbolize::Builder
(at runtime) - Renamed
symbolize::SymbolizedResult
toSym
and reworked it- Made it non-exhaustive
- Renamed
symbol
member toname
- Added
offset
member - Changed
line
member to be of typeu32
andcolumn
tou16
- Made all source code location information optional
- Split
path
member intodir
andfile
- 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 exposingread_elf_build_id
function
Full Changelog: v0.2.0-alpha.3...v0.2.0-alpha.4
v0.2.0-alpha.3
What's Changed
- Introduced custom
Error
type instead of relying solely onstd::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 usingtracing
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 toElf
- 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
What's Changed
- Added
extern "C"
guards inblazesym.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 withblaze_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
What's Changed
- Removed no longer necessary
base_address
member from various types - Renamed
SymInfo::address
member toaddr
- 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
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
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.