gpt4 book ai didi

c - 查找针对其生成核心转储的可执行文件

转载 作者:太空狗 更新时间:2023-10-29 12:32:54 26 4
gpt4 key购买 nike

有没有办法在 ELF 可执行文件中嵌入版本信息,例如 git commit hash,以便可以从它生成的核心转储中检索它?

最佳答案

参见 this question获取 git 哈希。

然后,更改您的构建过程(例如您的 Makefile)以包含它。例如,用

生成一行 C 文件
  git log --pretty=format:'const char program_git_hash[] = "%H";' \
-n 1 > _prog_hash.c

然后将您的程序与 _prog_hash.c 链接起来,并在链接后删除该文件。您可以添加时间戳信息,例如

 date +'const char program_timestamp="%c";%n' >> _prog_hash.c

然后您可以在二进制可执行文件上使用 gdbstrings 来找到它。

您可能想在某些头文件中声明 extern const char program_git_hash[];,并可能显示它(例如,将 --version 选项传递给您的程序时)

关于c - 查找针对其生成核心转储的可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21593187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com