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