38个版本 (破坏性更新)
0.31.0 | 2024年7月16日 |
---|---|
0.29.0 | 2024年4月11日 |
0.28.1 | 2023年11月24日 |
0.27.3 | 2023年6月15日 |
0.3.0 | 2016年7月27日 |
#10 in 解析器实现
6,955,669 每月下载量
用于 32,759 个crate(85个直接使用)
1.5MB
37K SLoC
gimli
gimli
是一个用于读写 DWARF调试格式 的库。
-
零拷贝:所有内容只是对原始输入缓冲区的引用。不会制作输入数据的副本。
-
惰性:您可以在不解析其内容的情况下迭代编译单元。只解析您迭代的调试信息条目(DIE)树。
gimli
还使用DW_AT_sibling
引用来避免解析DIE的子项以找到其下一个兄弟项,如果可能的话。 -
跨平台:
gimli
对您正在处理的对象文件类型不做任何假设。另一方面,您需要自己提供Linux上的ELF加载器或macOS上的Mach-O加载器。- 不确定要使用哪个对象文件解析器?尝试跨平台的
object
crate。查看gimli-examples
crate以了解与gimli
的使用。
- 不确定要使用哪个对象文件解析器?尝试跨平台的
安装
将此添加到您的 Cargo.toml
[dependencies]
gimli = "0.31.0"
最低支持的Rust版本是
- 1.60.0,用于
read
功能及其依赖项。 - 1.65.0,用于其他功能。
文档
-
示例程序
-
ddbug
,一个通过使调试信息可读来提供对代码生成洞察力的实用程序。 -
dwprod
是一个小巧的工具,用于列出创建共享库或可执行文件中每个编译单元所使用的编译器(通过DW_AT_producer
)。 -
dwarf-validate
是一个程序,用于验证某些 DWARF 及其在段和编译单元之间的引用的完整性。
许可证
许可方式如下:
- Apache License,版本 2.0 (
LICENSE-APACHE
或 https://www.apache.org/licenses/LICENSE-2.0) - MIT 许可证 (
LICENSE-MIT
或 https://opensource.org/licenses/MIT)
任选其一。
贡献
有关黑客攻击,请参阅 CONTRIBUTING.md。
除非您明确说明,否则根据 Apache-2.0 许可证定义,您有意提交以包含在作品中的任何贡献,将按上述方式双重许可,不附加任何额外的条款或条件。