Search

Lib.rs

› Development tools › Debugging | Operating systems › Unix APIs › blazesym
#elf #breakpad #dwarf #api-bindings #gsym

app blazecli

A command line utility for the blazesym library

by Daniel Müller, @d-e-s-o @ work and 16 contributors

  • Install
  • GitHub repo (libbpf)

16 releases

0.1.14 Jan 29, 2026
0.1.12 Sep 23, 2025
0.1.10 Jun 24, 2025
0.1.9 Mar 18, 2025
0.1.1 Nov 29, 2023

#656 in Debugging

BSD-3-Clause

1MB
18K SLoC

pipeline crates.io rustc

blazecli

  • Changelog

blazecli is a command line interface for the blazesym library. It aims to closely mirror the structure of the library in its command and sub-command structure.

Usage

As mentioned above, the program's sub-command aim to mirror the library's public API structure. Hence, to symbolize an address in an ELF file -- which blazesym allows via the symbolize::Symbolizer type in conjunction with the Elf source -- is possible via the symbolize elf sub-command:

# Just an example to illustrate symbolization on live data.
$ readelf --syms /lib64/libc.so.6 --wide | grep readdir64_r
>   2253: 00000000000caee0   228 FUNC    WEAK   DEFAULT   12 readdir64_r@@GLIBC_2.2.5

$ blazecli symbolize elf --path /lib64/libc.so.6 00000000000caee0
> 0xcaee0: readdir_r@0xcaee0+0 :0

To run the program from within a checkout (without any kind of installation), you would use:

$ cargo run -p blazecli -- symbolize elf --path /lib64/libc.so.6 00000000000caee0

Similarly, to symbolize an address inside a process the symbolize process sub-command can be used. Please refer to the program's help text for additional details.

Pre-built, statically linked binaries for various target triples are available on-demand here as well as attached to each published release.

Shell Completion

blazecli comes with shell completion support (for various shells). A completion script can be generated via the shell-complete utility program and then only needs to be sourced to make the current shell provide context-sensitive tab completion support. E.g.,

$ cargo run -p blazecli --bin=shell-complete --features="clap_complete" -- bash > blazecli.bash
$ source blazecli.bash

The generated completion script can be installed system-wide and sourced through initialization files, such as ~/.bashrc.

Completion scripts for other shells work in a similar manner. Please refer to the help text (--help) of the shell-complete program for the list of supported shells.

Dependencies

~14–19MB
~257K SLoC

  • anyhow
  • blazesym 0.2.3+apk+breakpad+demangle+dwarf+gsym+tracing+xz+zlib+zstd
  • bufio
  • clap+derive
  • optional clap_complete
  • tracing
  • tracing-subscriber+ansi+env-filter+fmt
  • build build.rs
  • build grev
Related: libbpf-cargo, blazesym, blazesym-c
See also: dump_syms, minidump-writer, crash-handler, minidump, thorin-dwp, debugid, breakpad-symbols, gimli, addr2line, symbolic-debuginfo, asm-annotate

Lib.rs is an unofficial list of Rust/Cargo crates, created by kornelski. It contains data from multiple sources, including heuristics, and manually curated data. Content of this page is not necessarily endorsed by the authors of the crate. This site is not affiliated with nor endorsed by the Rust Project. If something is missing or incorrect, please file a bug.