#executable #running #platform #debugging #binary #unique #lc-uuid

无std buildid

检查当前运行的可执行文件以获取其build-id或LC_UUID

4个稳定版本

1.0.3 2024年7月4日
1.0.2 2022年10月11日
1.0.1 2022年1月26日
1.0.0 2021年11月12日

#153 in 操作系统

MPL-2.0 许可证

32KB
549

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

获取一个唯一的、仅对当前二进制文件有效的&'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中提供一个函数(通过调用buildid::build_id()内部)来返回build-id,那么该函数调用将返回共享对象/库的build-id(而不是可执行文件)。

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

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

许可证

根据Mozilla Public License 2.0许可

贡献

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

依赖关系

~48–275KB