#linker #executable #no-std #running #features #build-id #buildid-symbol-start-end

no-std build buildid-linker-symbols

配置链接器以支持 buildid crate 的 "buildid-symbol-start-end" 功能

2 个稳定版本

1.0.1 2022年1月28日
1.0.0 2021年11月12日

#feature 中排名第 76

每月下载量 22
用于 buildid

MPL-2.0 许可证

3KB

buildid: 从您的 (运行中) 库或可执行文件中获取 buildid

获取一个 &'static [u8],该二进制文件是唯一的。

println!("{:?}", buildid::build_id())

build-id 是一个值,当二进制文件的任何组件对象发生变化时,该值都会改变。build-id 的变化并不能保证可执行文件或其组件实际上是不同的。如果两个不同的可执行文件在链接后经过修改(例如,通过 chrpath 或类似工具),它们可能具有不同的 build-id。

build-id 的目的是足以识别用于给定对象的适当调试信息,并且由 gdb 和其他调试器用于此目的。

可执行文件和共享对象都包含 build-id。使用 buildid::build_id() 将返回包含 buildid(此 crate)的对象的 build-id。例如,如果您使用此 crate 编写共享对象(共享库),并在共享对象的外部 API 中提供返回 build-id 的函数(通过调用 buildid::build_id() 内部),该函数调用将返回共享对象/库的 build-id(而不是可执行文件)。

支持 Windows、MacOS 和 Linux(并自动工作)。通过启用可选功能之一,可以支持嵌入式和其他平台(有关详细信息,请参阅 文档)。如果您有其他需要支持的平台,请发送 PR!

默认情况下,buildid crate 将为您的平台选择最佳的 build-id 查找函数。如果没有可用,它可能无法编译。如果您有要通知 buildid 的自定义 build-id 查找机制,启用其中一个功能可能会有所帮助。

许可证

在 Mozilla 公共许可证 2.0 下授权

贡献

除非您明确声明,否则您有意提交以供包含在本作品中的任何贡献都将按照上述方式许可,不附加任何额外条款或条件。

无运行时依赖