10 releases

new 0.1.8 Dec 12, 2024
0.1.7 Nov 5, 2024
0.1.6 Sep 5, 2024
0.1.5 Jun 10, 2024
0.1.1 Nov 29, 2023

#251 in Debugging

Download history 130/week @ 2024-09-05 5/week @ 2024-09-12 20/week @ 2024-09-19 22/week @ 2024-09-26 2/week @ 2024-10-03 1/week @ 2024-10-10 109/week @ 2024-10-31 37/week @ 2024-11-07 3/week @ 2024-11-14 2/week @ 2024-11-21

82 downloads per month

BSD-3-Clause

740KB
16K SLoC

pipeline crates.io rustc

blazecli

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

~6–8.5MB
~143K SLoC