3

我正在寻找手动生成 ELF Core Dump 文件。

我的程序中有一个 RAM 转储,还可以检索寄存器信息等。

有了这些数据,我想构建一个 ELF 核心转储文件,类似于 Linux 内核在程序崩溃时生成的文件,目标是使用专门为我的平台制作的 GDB 分析这个核心转储。

我一直在寻找核心转储规范或详细格式,但没有找到我想要的:

  • 我的核心转储文件需要哪些部分?
  • 它们是如何组织到 ELF 容器中的?
  • 我如何从二进制 RAM 转储(+ 寄存器值)转到类似文件的核心转储。

这必须最好在 C 中完成,我想我可以使用libelf库来帮助我构建文件,但是我没有找到有关在该文件中放入什么以及以哪种格式放置的相关信息,所以任何线索、链接或建议受到欢迎。

注意:这不是关于引发异常并让内核为我完成工作,我可以做到,但我确实需要自己收集 RAM 并将数据手动注册到 elf 核心转储中。

谢谢 !

4

1 回答 1

5

我正在寻找手动生成 ELF Core Dump 文件。

只需使用 Google elf用户空间 coredumper即可

我想构建我的核心转储,而不是直接在我的软件中实现它

没有现有的程序(据我所知)可以做到这一点。很有可能,您必须从头开始编写一个程序,或者改编一些其他程序。

有两个程序可以从用户空间写入核心转储——上面的用户空间 coredumper 和 GDB(通过gcore命令)。我希望适应 Google coredumper 会比适应 GDB 容易得多。

如果您决定从头开始编写一个,您仍然可以阅读 Google coredumper 源代码以确定您必须向核心写入的内容。

于 2013-07-26T03:34:16.207 回答