7 个版本
0.1.5 | 2024年6月10日 |
---|---|
0.1.4 | 2024年5月6日 |
0.1.3 | 2024年2月23日 |
0.1.2 | 2024年1月16日 |
0.0.0 | 2023年11月20日 |
#202 in 调试
423 每月下载量
660KB
14K SLoC
blazecli
blazecli 是 blazesym 库的命令行界面。它旨在在命令和子命令结构上与库的结构保持一致。
用法
如上所述,程序的子命令旨在反映库的公共API结构。因此,要符号化ELF文件中的地址——通过 blazesym 的 symbolize::Symbolizer
类型以及 Elf
源 可以通过 symbolize elf
子命令实现
# 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
要从检出的程序运行程序(无需任何安装),您可以使用
$ cargo run -p blazecli -- symbolize elf --path /lib64/libc.so.6 00000000000caee0
同样,要符号化进程内的地址,可以使用 symbolize process
子命令。请参阅程序的帮助文本以获取更多详细信息。
预构建的静态链接二进制文件可用于各种目标三联体,可在 此处 获取。
Shell 完成功能
blazecli 附带了各种shell的完成功能。可以通过 shell-complete
实用程序生成完成脚本,然后只需将其源到当前shell中,即可提供上下文感知的Tab补全支持。例如:
$ cargo run -p blazecli --bin=shell-complete --features="clap_complete" -- bash > blazecli.bash
$ source blazecli.bash
生成的完成脚本可以全局安装并通过初始化文件(如~/.bashrc
)进行引用。
其他shell的完成脚本以类似的方式工作。请参阅shell-complete
程序的帮助文本(--help
)以获取支持的shell列表。
依赖关系
约6-8MB
约141K SLoC