Expand description
blazesym is a library that can be used to symbolize addresses. Address symbolization is a common problem in tracing contexts, for example, where users want to reason about functions by name, but low level components report only the “raw” addresses (e.g., in the form of stacktraces).
In addition to symbolization, blazesym also provides APIs for the reverse operation: looking up addresses from symbol names. That can be useful, for example, for configuring breakpoints or tracepoints.
Overview
The crate is organized via public modules that expose functionality pertaining a certain topic. Specifically, these areas are currently covered:
symbolizecovers address symbolization functionalityinspectcontains APIs for inspecting files such as ELF and Gsym to lookup addresses to symbol names, for examplenormalizeexposes address normalization functionality
C API bindings are defined in a cross-cutting manner as part of the
c_api module (note that Rust code should not have to consume these
functions and on the ABI level this module organization has no relevance for
C).
Modules
- C API bindings for the library.
- Utility functionality not specific to any overarching theme.
- Functionality for inspecting files such as ELF or Gsym.
- Functionality for address normalization.
- Functionality for symbolizing addresses.
Structs
- The error type used by the library.
Enums
- An enum providing a rough classification of errors.
- An enumeration identifying a process.
Traits
- A trait providing ergonomic chaining capabilities to
Error. - A trait providing conversion shortcuts for creating
Errorinstances.
Type Aliases
- A type representing addresses.
- A result type using our
Errorby default.