115 个稳定版本 (11 个主要版本)
| 12.10.0 | 2024年7月24日 |
|---|---|
| 12.8.0 | 2023年12月1日 |
| 12.7.1 | 2023年11月29日 |
| 12.3.0 | 2023年7月19日 |
| 1.1.5 | 2017年12月2日 |
#233 在 调试 中
20,909 每月下载量
用于 25 个crate(13 个直接使用)
740KB
13K SLoC
处理对象文件和调试信息的抽象。
此模块定义了 Object 类型,它是不同平台上使用的各种对象文件格式的抽象。由于 MacOS 上的可执行文件可能包含多个对象文件(称为“Fat MachO”),因此还有一个 Archive 类型,它为所有平台提供了一个统一的接口,可以访问对象迭代器。
大多数对象文件的处理将在 Object 类型或其针对特定平台的具体实现上进行。为了允许对此进行抽象,有一个 ObjectLike 特征。它定义了常见属性,并提供了访问 DebugSession 的权限,这可以用于执行更多有状态的调试信息处理。
有关完整 API,请参阅 Object,或使用一个模块直接访问平台相关的数据。
背景
symbolic::debuginfo 的功能在概念上类似于 object crate。然而,有一些关键差异,这需要单独的实现。
object更侧重于可执行格式,而symbolic则关注调试信息。这就是为什么symbolic还包括 PDB 和 Breakpad 对象的变体,而object则有 WASM 变体。object以牺牲性能为代价,提供了对对象内部数据的更多通用访问。symbolic尝试在通用使用方面进行优化,以牺牲调试场景。symbolic包含了对多对象文件(Archive)的抽象,这在object中由于object::Object特性使用生命周期而难以实现。
依赖项
~0.8–9.5MB
~91K SLoC