Crate blazesym

source ·
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:

  • symbolize covers address symbolization functionality
  • inspect contains APIs for inspecting files such as ELF and Gsym to lookup addresses to symbol names, for example
  • normalize exposes address normalization functionality

C API bindings are defined in a cross-cutting manner as part of the cblazesym crate (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§

  • 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.
  • The type of a symbol.

Traits§

  • A trait providing ergonomic chaining capabilities to Error.
  • A trait providing conversion shortcuts for creating Error instances.

Type Aliases§

  • A type representing addresses.
  • A result type using our Error by default.