#dwarf #read-input #dwp #split-dwarf #dwarf-object #dwarf-package

应用 thorin-dwp-bin

合并DWARF对象和包到DWARF包中

9个版本 (重大更改)

0.8.0 2024年8月6日
0.7.0 2023年8月14日
0.6.0 2023年4月21日
0.5.0 2023年2月22日
0.1.1 2021年12月18日

#241 in 调试

Download history 4/week @ 2024-06-03 5/week @ 2024-07-01 78/week @ 2024-07-29 117/week @ 2024-08-05

每月195次下载

MIT/Apache

99KB
2K SLoC

thorin

thorin是一个DWARF打包工具,用于从输入DWARF对象(*.dwo文件)创建DWARF包(*.dwp文件),支持DWARF包的预标准GNU扩展格式和DWARF 5中引入的标准格式。

thorin是作为rustc中Split DWARF实现的一部分编写的。一个Rust实现的DWARF打包工具更容易集成到编译器中,并支持从归档文件(或rustc的rlibs)加载DWARF对象等特性,这对于支持在rustc中跨库Split DWARF打包非常有帮助。

使用方法

thorin可以从可执行文件中读取输入DWARF对象,也可以打包任意输入DWARF对象(包括归档文件中的DWARF对象,如Rust rlibs)!使用cargo安装thorin

$ cargo install thorin-dwp-bin
$ thorin --help
thorin 0.8.0
merge dwarf objects into dwarf packages

USAGE:
    thorin [OPTIONS] [--] [inputs]...

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -e, --exec <executables>...    Specify path to executables to read list of dwarf objects from
    -o, --output <output>          Specify path to write the dwarf package to [default: -]

ARGS:
    <inputs>...    Specify path to input dwarf objects and packages

如果输入对象是DWARF版本5或更高,则输出包将以DWARF 5格式。对于版本4及以下,将使用GNU扩展格式用于输出包。

稳定性

thorin的命令行界面旨在保持稳定,并有限地引入重大更改。


名称

thorin 以《霍比特人》中的《托尔金·奥肯希尔》命名,因为托尔金是一位领导其他矮人的矮人。《code>thorin 使用 gimli 库(以《指环王》中的矮人命名)来读取 DWARF 格式的调试信息,该格式是可执行文件和对象文件格式 ELF 的中世纪奇幻补充。
如果您愿意,也可以将此项目称为 rust-dwp

作者和致谢

thorin华为技术有限公司研发(英国)有限公司 的 David Wood 编写。[code]thorinRust 编译器团队 维护。
此外,感谢 objectgimli 的作者,本实用程序高度依赖它们;感谢 Philip Craigthorin 的初始实现期间提供的建议和审查。

许可证

根据您的选择,在 Apache 许可证版本 2.0MIT 许可证 下获得许可。
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在此软件包中的任何贡献,将如上所述双重许可,不附加任何额外条款或条件。

行为准则

在贡献或与此项目互动时,我们要求遵守 Rust 行为准则,并要求您也这样做。

依赖关系

~10–17MB
~202K SLoC